Open manucarrace opened 6 years ago
Metadata aggregation is done at: https://github.com/telefonicaid/fiware-cygnus/blob/master/cygnus-ngsi/src/main/java/com/telefonica/iot/cygnus/sinks/NGSIHDFSSink.java#L499
It could be easy add a configuration flag to enable or not metadata aggregation
Same issue as #1591
The metadata insertion in csv need to be improved. Current cygnus implementation inserts metadata in different files, and it includes a reference to the metadata path in the csv file. This metadata files has no order and it is not possible to identify which metadata corresponds to which attribute. Moreover, the csv file has very large fields, which makes the csv a bit difficult to read. Besides, the client folder is full of empty metadatada folders, which, in general terms, are rubbish.
The following is an example of a cvs persistence:
2018-04-23T11:54:38.936Z,/MedioAmbiente,1,EstacionClimaDatos,78.0,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffHRxffffdouble/1_EstacionClimaDatosxffffHRxffffdouble.txt,1,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffIdDispositivoxffffinteger/1_EstacionClimaDatosxffffIdDispositivoxffffinteger.txt,0.0,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffPrecipitacionesxffffdouble/1_EstacionClimaDatosxffffPrecipitacionesxffffdouble.txt,1031.0,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffPresionBarxffffdouble/1_EstacionClimaDatosxffffPresionBarxffffdouble.txt,9.4,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffTemperaturaxffffdouble/1_EstacionClimaDatosxffffTemperaturaxffffdouble.txt,2017-12-20T10:16:27.00Z,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffTimeInstantxffffISO8601/1_EstacionClimaDatosxffffTimeInstantxffffISO8601.txt,236.0,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffVientoDireccionxffffdouble/1_EstacionClimaDatosxffffVientoDireccionxffffdouble.txt,0.3,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffVientoVelocidadxffffdouble/1_EstacionClimaDatosxffffVientoVelocidadxffffdouble.txt,wewew,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffcacaxffffwewye/1_EstacionClimaDatosxffffcacaxffffwewye.txt,39.457526, -0.342666,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxfffflocationxffffcoords/1_EstacionClimaDatosxfffflocationxffffcoords.txt,,hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffqqqqxffffqqqqq/1_EstacionClimaDatosxffffqqqqxffffqqqqq.txt
Where:
2018-04-23T11:54:38.936Z – recvTime: obligatorio en cygnus. Es el tiempo de inserción en hdfs /MedioAmbiente – fiware-servicePath: obligatorio en cygnus 1 – entityId: obligatorio en cygnus EstacionClimaDatos - entityType: obligatorio en cygnus 78.0 - valor del primer atributo (en este caso HR) hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffHRxffffdouble/1_EstacionClimaDatosxffffHRxffffdouble.txt: - ruta donde se almacenan los metadatos del primer atributo. Al poder ser una lista de metadatos de longitud variable se almacenan en una ruta. En vuestro caso este campo podríais ignorarlo 1 - valor del segundo atributo (en este caso IdDispositivo) hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffIdDispositivoxffffinteger/1_EstacionClimaDatosxffffIdDispositivoxffffinteger.txt: - ruta de los metadatos del segundo atributo 0.0: - valor del tercer atributo (en este caso Precipitaciones) hdfs:///user/hdfs/sc_vlci/MedioAmbiente/1_EstacionClimaDatosxffffPrecipitacionesxffffdouble/1_EstacionClimaDatosxffffPrecipitacionesxffffdouble.txt: - ruta de los metadatos del tercer atributo