Is your feature request related to a problem? Please describe.
νμ¬ Geo point νμ
μ μΈμ μ€μ² ν λ μ μ κ° μμ±ν΄μΌλ§ μ¬μ©ν μ μμ΅λλ€.
κ·Έλ¬λ κΈ°μ‘΄μ μμ±ν΄ λμ Geo pointλ₯Ό νμ©νλ μ¬μ©μ±μ΄ 컀μ‘μΌλ©°, μΌμΌν Geo point νμ
μ μμ±νκΈ°μ λ²κ±°λ‘μμ΄ μμ΅λλ€.
Describe the solution you'd like
Geo point typeμΌλ‘ λ³κ²½ν μ μμ΄μΌ ν©λλ€.
λλΆμ΄ WKT ν¬λ§·λ§ μ§μν©λλ€. μ΄λ―Έ WKT ν¬λ§·μΌλ‘ μμ±λ λ°μ΄ν°μΌ κ²½μ°μλ§ λ³κ²½ν μ μμ΅λλ€.
Describe alternatives you've considered



~μ΄ μ΄μλ #1540 μμ κ°μ΄ μ§ννκ² μ΅λλ€~
@kyungtaak @AnnieHwang
μ§λ¬Έμ΄ μμ΅λλ€.
νμ¬ 'μμΈ > μ»¬λΌ μ€ν€λ§' νλ©΄μμ Geo Pointλ§ μμ νλ κ²μΌλ‘ κΈ°ννμλλ°, μΈμ μ€μ² νλ©΄μμλ Geo point λΏ μλλΌ Geo line, Geo polygonκΉμ§ λ³κ²½ν μ μμ΅λλ€. λͺ¨λ λμΌνκ² point,line, polygonκΉμ§ μ§μν΄μΌ ν κΉμ?
Geo point λ‘ λ³κ²½μ WKTν¬λ§·μΈμ§ μλμ§λ§ νλ¨νλ€κ³ κ°μ΄λ λ°μμλλ°μ
νμ¬ μΈμ μ€μ² νλ©΄μμλ Geo coordinatesλ₯Ό μ€μ ν μ μμ΅λλ€.
Geo coordinates μ€μ λΆλΆμ΄ 'μμΈ > μ»¬λΌ μ€ν€λ§'νλ©΄μλ λμΌνκ² μ μ©λμ΄μΌ νλμ§ κΆκΈν©λλ€.

@kyungtaak @AnnieHwang @brandon-wonjune @ninezero90hy
- νμ¬ 'μμΈ > μ»¬λΌ μ€ν€λ§' νλ©΄μμ Geo Pointλ§ μμ νλ κ²μΌλ‘ κΈ°ννμλλ°, μΈμ μ€μ² νλ©΄μμλ Geo point λΏ μλλΌ Geo line, Geo polygonκΉμ§ λ³κ²½ν μ μμ΅λλ€. λͺ¨λ λμΌνκ² point,line, polygonκΉμ§ μ§μν΄μΌ ν κΉμ?
- Geo point λ‘ λ³κ²½μ WKTν¬λ§·μΈμ§ μλμ§λ§ νλ¨νλ€κ³ κ°μ΄λ λ°μμλλ°μ
νμ¬ μΈμ μ€μ² νλ©΄μμλ Geo coordinatesλ₯Ό μ€μ ν μ μμ΅λλ€.
Geo coordinates μ€μ λΆλΆμ΄ 'μμΈ > μ»¬λΌ μ€ν€λ§'νλ©΄μλ λμΌνκ² μ μ©λμ΄μΌ νλμ§ κΆκΈν©λλ€.
μ μν©μ λνμ¬ μΈμ μ€μ², 컬λΌμ€ν€λ§ λͺ¨λ λμΌν UIκ° μ μ©λμ΄μΌ ν©λλ€.
μ΄μ λ°λΌ λ³κ²½λ νλ©΄ 곡μ ν©λλ€.
.
.
.
.
pptνλ©΄ μ
λλ€.
#1625_Change GeoPoint Type.pptx
μ°Έκ³ λΆνλ립λλ€.
@kyungtaak λ©νλ°μ΄ν° μ»¬λΌ λͺ©λ‘ μ‘°νμ ν¬λ§· νλκ° μμ΅λλ€. νμΈ λΆνλ립λλ€
[GET] /api/metadatas/{id}/columns?projection=forListView[{
"name": "id",
"id": "42",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "id"
}, {
"name": "created_by",
"id": "43",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "created_by"
}, {
"name": "created_time",
"id": "44",
"type": "TIMESTAMP",
"role": "TIMESTAMP",
"popularity": 0.0,
"physicalType": "TIMESTAMP",
"physicalName": "created_time"
}, {
"name": "modified_by",
"id": "45",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "modified_by"
}, {
"name": "modified_time",
"id": "46",
"type": "TIMESTAMP",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "TIMESTAMP",
"physicalName": "modified_time"
}, {
"name": "version",
"id": "47",
"type": "INTEGER",
"role": "MEASURE",
"popularity": 0.0,
"physicalType": "LONG",
"physicalName": "version"
}, {
"name": "ds_conn_type",
"id": "48",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_conn_type"
}, {
"name": "datasource_contexts",
"id": "49",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "datasource_contexts"
}, {
"name": "ds_desc",
"id": "50",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_desc"
}, {
"name": "ds_type",
"id": "51",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_type"
}, {
"name": "ds_engine_name",
"id": "52",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_engine_name"
}, {
"name": "ds_fail_on_engine",
"id": "53",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_fail_on_engine"
}, {
"name": "ds_fields_matched",
"id": "54",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_fields_matched"
}, {
"name": "ds_granularity",
"id": "55",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_granularity"
}, {
"name": "ds_include_geo",
"id": "56",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_include_geo"
}, {
"name": "ingestion_conf",
"id": "57",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ingestion_conf"
}, {
"name": "ds_linked_workspaces",
"id": "58",
"type": "INTEGER",
"role": "MEASURE",
"popularity": 0.0,
"physicalType": "INTEGER",
"physicalName": "ds_linked_workspaces"
}, {
"name": "ds_name",
"id": "59",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_name"
}, {
"name": "ds_owner_id",
"id": "60",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_owner_id"
}, {
"name": "ds_partition_keys",
"id": "61",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_partition_keys"
}, {
"name": "ds_partition_separator",
"id": "62",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_partition_separator"
}, {
"name": "ds_published",
"id": "63",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_published"
}, {
"name": "ds_seg_granularity",
"id": "64",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_seg_granularity"
}, {
"name": "ds_src_type",
"id": "65",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_src_type"
}, {
"name": "ds_status",
"id": "66",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ds_status"
}, {
"name": "dc_id",
"id": "67",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "dc_id"
}, {
"name": "ss_id",
"id": "68",
"type": "STRING",
"role": "DIMENSION",
"popularity": 0.0,
"physicalType": "STRING",
"physicalName": "ss_id"
}, {
"name": "smy_id",
"id": "69",
"type": "INTEGER",
"role": "MEASURE",
"popularity": 0.0,
"physicalType": "LONG",
"physicalName": "smy_id"
}]
{
...
"name": "datasource",
"fields": [{
"id": 10047066,
"name": "id",
"logicalName": "id",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 0
}, {
"id": 10047067,
"name": "created_by",
"logicalName": "created_by",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 1
}, {
"id": 10047068,
"name": "created_time",
"logicalName": "created_time",
"type": "TIMESTAMP",
"logicalType": "TIMESTAMP",
"role": "TIMESTAMP",
"aggrType": "NONE",
"seq": 2,
"format": {
"type": "time_format",
"format": "yyyy-MM-dd HH:mm:ss.SSSSSS",
"timeZone": "Asia/Seoul",
"locale": "en"
}
}, {
"id": 10047069,
"name": "modified_by",
"logicalName": "modified_by",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 3
}, {
"id": 10047070,
"name": "modified_time",
"logicalName": "modified_time",
"type": "TIMESTAMP",
"logicalType": "TIMESTAMP",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 4,
"format": {
"type": "time_format",
"format": "yyyy-MM-dd HH:mm:ss.SSSSSS",
"timeZone": "Asia/Seoul",
"locale": "en"
}
}, {
"id": 10047071,
"name": "version",
"logicalName": "version",
"type": "LONG",
"logicalType": "INTEGER",
"role": "MEASURE",
"aggrType": "NONE",
"seq": 5
}, {
"id": 10047072,
"name": "ds_conn_type",
"logicalName": "ds_conn_type",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 6
}, {
"id": 10047073,
"name": "datasource_contexts",
"logicalName": "datasource_contexts",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 7
}, {
"id": 10047074,
"name": "ds_desc",
"logicalName": "ds_desc",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 8
}, {
"id": 10047075,
"name": "ds_type",
"logicalName": "ds_type",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 9
}, {
"id": 10047076,
"name": "ds_engine_name",
"logicalName": "ds_engine_name",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 10
}, {
"id": 10047077,
"name": "ds_fail_on_engine",
"logicalName": "ds_fail_on_engine",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 11
}, {
"id": 10047078,
"name": "ds_fields_matched",
"logicalName": "ds_fields_matched",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 12
}, {
"id": 10047079,
"name": "ds_granularity",
"logicalName": "ds_granularity",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 13
}, {
"id": 10047080,
"name": "ds_include_geo",
"logicalName": "ds_include_geo",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 14
}, {
"id": 10047081,
"name": "ingestion_conf",
"logicalName": "ingestion_conf",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 15
}, {
"id": 10047082,
"name": "ds_linked_workspaces",
"logicalName": "ds_linked_workspaces",
"type": "INTEGER",
"logicalType": "INTEGER",
"role": "MEASURE",
"aggrType": "NONE",
"seq": 16
}, {
"id": 10047083,
"name": "ds_name",
"logicalName": "ds_name",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 17
}, {
"id": 10047084,
"name": "ds_owner_id",
"logicalName": "ds_owner_id",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 18
}, {
"id": 10047085,
"name": "ds_partition_keys",
"logicalName": "ds_partition_keys",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 19
}, {
"id": 10047086,
"name": "ds_partition_separator",
"logicalName": "ds_partition_separator",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 20
}, {
"id": 10047087,
"name": "ds_published",
"logicalName": "ds_published",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 21
}, {
"id": 10047088,
"name": "ds_seg_granularity",
"logicalName": "ds_seg_granularity",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 22
}, {
"id": 10047089,
"name": "ds_src_type",
"logicalName": "ds_src_type",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 23
}, {
"id": 10047090,
"name": "ds_status",
"logicalName": "ds_status",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 24
}, {
"id": 10047091,
"name": "dc_id",
"logicalName": "dc_id",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 25
}, {
"id": 10047092,
"name": "ss_id",
"logicalName": "ss_id",
"type": "STRING",
"logicalType": "STRING",
"role": "DIMENSION",
"aggrType": "NONE",
"seq": 26
}, {
"id": 10047093,
"name": "smy_id",
"logicalName": "smy_id",
"type": "LONG",
"logicalType": "INTEGER",
"role": "MEASURE",
"aggrType": "NONE",
"seq": 27
}],
"id": "9f8d9c91-2067-416c-8571-d84e654ae5b6",
"engineName": "datasource",
"description": "",
"status": "ENABLED",
"ingestion": {
"type": "single",
"connection": {
"implementor": "MYSQL",
"type": "JDBC",
"hostname": "localhost",
"port": 3306,
"username": "polaris",
"password": "polaris",
"authenticationType": "MANUAL",
"linkedWorkspaces": 0,
"connectUrl": "jdbc:mysql://localhost:3306/"
},
"database": "polaris",
"dataType": "TABLE",
"query": "datasource",
"rollup": true,
"intervals": ["2019-03-10T09/2019-03-18T17"],
"fetchSize": 200,
"maxLimit": 10000000,
"scope": "ALL"
},
"contexts": {},
"dsType": "MASTER",
...
}
@AnnieHwang μΆκ°λλ΄μ© λμμΈ μ²¨λΆν©λλ€- κ²ν λΆνλλ €μ
Datasource > Ingestion : μλλ΄μ© μ μ© λΆνλλ €μ-
(Geo) Point/Line/Polygonνμ μΌλ‘ μμ μ¦μ WKTν¬λ§· μ ν¨μ± κ²μ¬κ° μ΄λ€μ ΈμΌ ν©λλ€.
λλΆμ΄ μ ν¨νμ§ μμκ²½μ° κ²½κ³ λ₯Ό λμ°λ©°, μ’νκ³ Select boxλ₯Ό λΉνμ±ν ν΄μ£ΌμΈμ.
Datasource > Column details > Configure the schema

Metadata > Column schema

@kyungtaak GEOνμ
μΌλ‘ λ°μ΄ν°μμ€ μμ±μ€ μλ¬ λ¬Έμ μ
λλ€.
μλμ νμΌμ μ΄μ©νμ¬ ν
μ€νΈνμμ΅λλ€.
// api
api/datasources
// error
2019-03-21T04:31:30,130 INFO [task-runner-0-priority-0] io.druid.indexing.overlord.TaskRunnerUtils - Task [index_test4_2_2019-03-21T04:31:25.849Z] status changed to [FAILED].
2019-03-21T04:31:30,132 INFO [task-runner-0-priority-0] io.druid.indexing.worker.executor.ExecutorLifecycle - Task completed with status: {
"id" : "index_test4_2_2019-03-21T04:31:25.849Z",
"status" : "FAILED",
"duration" : 338,
"reason" : "Exception: [io.druid.segment.serde.StructMetricSerde$2.extractElement(StructMetricSerde.java:189), io.druid.segment.serde.StructMetricSerde$2.extractValue(StructMetricSerde.java:137), io.druid.segment.ColumnSelectorFactories$FromInputRow$8.get(ColumnSelectorFactories.java:576), io.druid.query.aggregation.Aggregators$3.aggregate(Aggregators.java:245), io.druid.segment.incremental.OnheapIncrementalIndex.aggregate(OnheapIncrementalIndex.java:238), io.druid.segment.incremental.OnheapIncrementalIndex.factorizeAggs(OnheapIncrementalIndex.java:223), io.druid.segment.incremental.OnheapIncrementalIndex.addToFacts(OnheapIncrementalIndex.java:195), io.druid.segment.incremental.IncrementalIndex.addTimeAndDims(IncrementalIndex.java:445), io.druid.segment.incremental.IncrementalIndex.add(IncrementalIndex.java:440), io.druid.segment.realtime.plumber.Sink.add(Sink.java:160), io.druid.indexing.common.index.YeOldePlumberSchool$1.add(YeOldePlumberSchool.java:139), io.druid.indexing.common.task.IndexTask.generateSegment(IndexTask.java:415), ... more]"
}
@brandon-wonjune "GeoPoint" 컬λΌκ°μ΄ "25.9597,-80.1403" μΈλ°μ.
@kyungtaak wkt μ ν¨κ° κ²μ¦μ μ¬μ©λ νλΌλ©ν° μ 보μ
λλ€.
wktμ ν¨κ° κ²μ¦μ validκ° TRUEκ° λκ³ μμ΅λλ€.
// api
api/datasources/validation/wkt
// result
message: null
suggestType: null
valid: true
// param
{
geoType: "GEO_POINT",
values: [
"POINT (25.9597 -80.1403)",
"POINT (27.5569 -99.4907)",
"POINT (27.5569 -99.4907)",
"POINT (27.7898 -82.7243)",
"POINT (27.7898 -82.7243)",
"POINT (29.8941 -95.6481)",
"POINT (30.6448 -95.5798)",
"POINT (30.6448 -95.5798)",
"POINT (32.5449 -93.7038)",
"POINT (32.5449 -93.7038)",
"POINT (32.5449 -93.7038)",
"POINT (32.5449 -93.7038)",
"POINT (32.5449 -93.7038)",
"POINT (32.8455 -117.2521)",
"POINT (32.8455 -117.2521)",
"POINT (32.8455 -117.2521)",
"POINT (32.8455 -117.2521)",
"POINT (32.8473 -79.8206)",
"POINT (33.0535 -117.2689)"
]
}
@brandon-wonjune μ£Όμ μνμ κ·Έκ² μλλλ°μ.;;
@kyungtaak μ£μ‘ν©λλ€.
μ€ λ°μ΄ν°κ° POINT (32.8455 -117.2521)ννλ‘ μμ¬μμ΄μΌ κ°λ₯νκ±°κ΅°μ.
ν΄λΌμ΄μΈνΈμμ GEO νμ
μ λ§κ² λ³ννμ¬ valid 체ν¬λ₯Ό νλ μ€ μμμ΅λλ€.
μμ νμ¬ λ€μ ν
μ€νΈλ₯Ό νμμ΅λλ€.
ν
μ€νΈμ μ¬μ©λ νμΌμ μλ μ
λλ€.
geo_test.zip
ν μ€νΈ μμλ λ€μκ³Ό κ°μ΅λλ€.
// api
api/datasources/validation/wkt
// param
{geoType:"GEO_POINT",
values:["POINT (25.9597 -80.1403)","POINT (27.5569 -99.4907)","POINT (27.5569 -99.4907)","POINT (27.7898 -82.7243)","POINT (27.7898 -82.7243)","POINT (29.8941 -95.6481)","POINT (30.6448 -95.5798)","POINT (30.6448 -95.5798)","POINT (32.5449 -93.7038)","POINT (32.5449 -93.7038)","POINT (32.5449 -93.7038)","POINT (32.5449 -93.7038)","POINT (32.5449 -93.7038)","POINT (32.8455 -117.2521)","POINT (32.8455 -117.2521)","POINT (32.8455 -117.2521)","POINT (32.8455 -117.2521)","POINT (32.8473 -79.8206)","POINT (33.0535 -117.2689)"]
}
// result
{
message: null
suggestType: null
valid: true
}
// error
2019-03-22 05:06:44.558 ERROR [-] [ingestion-02a617cb-02da-4e1c-9191-14e22732515d-0] a.m.d.d.d.i.job.IngestionJobRunner : Fail to ingestion : IngestionHistory{dataSourceId='02a617cb-02da-4e1c-9191-14e22732515d', ingestionId='index__hacye_2019-03-22T05:06:35.402Z', ingestionMethod=null, duration=null, status=FAILED, errorCode=INGESTION_ENGINE_TASK_ERROR, progress=ENGINE_RUNNING_TASK, cause='DataSourceIngestionException: An error occurred while loading the data source : Exception: [io.druid.segment.serde.StructMetricSerde$2.extractElement(StructMetricSerde.java:189), io.druid.segment.serde.StructMetricSerde$2.extractValue(StructMetricSerde.java:137), io.druid.segment.ColumnSelectorFactories$FromInputRow$8.get(ColumnSelectorFactories.java:576), io.druid.query.aggregation.Aggregators$3.aggregate(Aggregators.java:245), io.druid.segment.incremental.OnheapIncrementalIndex.aggregate(OnheapIncrementalIndex.java:238), io.druid.segment.incremental.OnheapIncrementalIndex.factorizeAggs(OnheapIncrementalIndex.java:223), io.druid.segment.incremental.OnheapIncrementalIndex.addToFacts(OnheapIncrementalIndex.java:195), io.druid.segment.incremental.IncrementalIndex.addTimeAndDims(IncrementalIndex.java:445), io.druid.segment.incremental.IncrementalIndex.add(IncrementalIndex.java:440), io.druid.segment.realtime.plumber.Sink.add(Sink.java:160), io.druid.indexing.common.index.YeOldePlumberSchool$1.add(YeOldePlumberSchool.java:139), io.druid.indexing.common.task.IndexTask.generateSegment(IndexTask.java:415), ... more]'} app.metatron.discovery.domain.datasource.ingestion.IngestionHistory@6ebce9c2
app.metatron.discovery.domain.datasource.DataSourceIngestionException: An error occurred while loading the data source : Exception: [io.druid.segment.serde.StructMetricSerde$2.extractElement(StructMetricSerde.java:189), io.druid.segment.serde.StructMetricSerde$2.extractValue(StructMetricSerde.java:137), io.druid.segment.ColumnSelectorFactories$FromInputRow$8.get(ColumnSelectorFactories.java:576), io.druid.query.aggregation.Aggregators$3.aggregate(Aggregators.java:245), io.druid.segment.incremental.OnheapIncrementalIndex.aggregate(OnheapIncrementalIndex.java:238), io.druid.segment.incremental.OnheapIncrementalIndex.factorizeAggs(OnheapIncrementalIndex.java:223), io.druid.segment.incremental.OnheapIncrementalIndex.addToFacts(OnheapIncrementalIndex.java:195), io.druid.segment.incremental.IncrementalIndex.addTimeAndDims(IncrementalIndex.java:445), io.druid.segment.incremental.IncrementalIndex.add(IncrementalIndex.java:440), io.druid.segment.realtime.plumber.Sink.add(Sink.java:160), io.druid.indexing.common.index.YeOldePlumberSchool$1.add(YeOldePlumberSchool.java:139), io.druid.indexing.common.task.IndexTask.generateSegment(IndexTask.java:415), ... more]
at app.metatron.discovery.domain.datasource.ingestion.job.IngestionJobRunner.ingestion(IngestionJobRunner.java:198)
at app.metatron.discovery.domain.datasource.DataSourceEventHandler.lambda$checkCreateAuthority$0(DataSourceEventHandler.java:234)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
@brandon-wonjune point νμ μ wkt νμμ λν μ μ¬ μ΄μλ λ³λ μ΄μλ‘ κ΄λ¦¬νκ² μ΅λλ€.
@brandon-wonjune μ μ¬ μ΄μλ ν΄κ²°λμμ΅λλ€. μλ λͺ©ννλ κΈ°λ₯μ΄ μλ£ λμμΌλ©΄, μ΄λ²λ¦΄λ¦¬μ¦μ ν¨κ» ν¬ν¨ν΄μ κ°λκ² μ’μκ² κ°λ€μ.
@kyungtaak λ©νλ°μ΄ν° μͺ½ νμΈμ΄ λλ©΄ PRμ€ννλλ‘ νκ² μ΅λλ€
@kyungtaak μμ€μμ±ν μμΈνλ©΄μμ μ μ¬μ μλ¬κ° λ°μν©λλ€.
ν
μ€νΈν νμΌκ³Ό μμλ μμ λμΌνκ² νμμ΅λλ€.
druidλ https://github.com/metatron-app/metatron-discovery λ©μΈνλ©΄μ μλκ²μΌλ‘ νμμ΅λλ€.
// error
2019-03-28 01:27:04.429 ERROR [-] [ingestion-796ce20e-0371-4e71-9c81-f12e6eb78c7b-0] a.m.d.d.d.i.job.IngestionJobRunner : Fail to ingestion : IngestionHistory{dataSourceId='796ce20e-0371-4e71-9c81-f12e6eb78c7b', ingestionId='null', ingestionMethod=null, duration=null, status=FAILED, errorCode=INGESTION_ENGINE_ACCESS_ERROR, progress=ENGINE_INIT_TASK, cause='QueryTimeExcetpion: [{"error":"Could not resolve type id 'latlon.shape' into a subtype of [simple type, class io.druid.segment.lucene.LuceneIndexingStrategy]\n at [Source: HttpInputOverHTTP@327bc1b1; line: 1, column: 1766] (through reference chain: java.util.LinkedHashMap[\"GeoPoint\"]->java.util.ArrayList[0])"}]'} app.metatron.discovery.domain.datasource.ingestion.IngestionHistory@3080a5f4
app.metatron.discovery.domain.datasource.DataSourceIngestionException: Failed to access to the engine
at app.metatron.discovery.domain.datasource.ingestion.job.AbstractIngestionJob.doIngestion(AbstractIngestionJob.java:184)
at app.metatron.discovery.domain.datasource.ingestion.job.FileIngestionJob.process(FileIngestionJob.java:127)
at app.metatron.discovery.domain.datasource.ingestion.job.IngestionJobRunner.ingestion(IngestionJobRunner.java:191)
at app.metatron.discovery.domain.datasource.DataSourceEventHandler.lambda$checkCreateAuthority$0(DataSourceEventHandler.java:244)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: app.metatron.discovery.domain.engine.EngineException: Fail to process response : [{"error":"Could not resolve type id 'latlon.shape' into a subtype of [simple type, class io.druid.segment.lucene.LuceneIndexingStrategy]\n at [Source: HttpInputOverHTTP@327bc1b1; line: 1, column: 1766] (through reference chain: java.util.LinkedHashMap[\"GeoPoint\"]->java.util.ArrayList[0])"}]
at app.metatron.discovery.domain.engine.AbstractEngineRepository.call(AbstractEngineRepository.java:126)
at app.metatron.discovery.domain.engine.AbstractEngineRepository.call(AbstractEngineRepository.java:111)
at app.metatron.discovery.domain.engine.DruidEngineRepository.ingestion(DruidEngineRepository.java:71)
at app.metatron.discovery.domain.engine.DruidEngineRepository$$FastClassBySpringCGLIB$$7c06ef0f.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:204)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:738)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:157)
at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:85)
at app.metatron.discovery.domain.engine.QueryServiceAspect.engineQueryProcessing(QueryServiceAspect.java:119)
at sun.reflect.GeneratedMethodAccessor232.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:629)
at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:618)
at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:70)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:92)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:179)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:673)
at app.metatron.discovery.domain.engine.DruidEngineRepository$$EnhancerBySpringCGLIB$$90f07aaf.ingestion(<generated>)
at app.metatron.discovery.domain.datasource.ingestion.job.AbstractIngestionJob.doIngestion(AbstractIngestionJob.java:180)
... 8 common frames omitted
Caused by: app.metatron.discovery.domain.datasource.data.QueryTimeExcetpion: [{"error":"Could not resolve type id 'latlon.shape' into a subtype of [simple type, class io.druid.segment.lucene.LuceneIndexingStrategy]\n at [Source: HttpInputOverHTTP@327bc1b1; line: 1, column: 1766] (through reference chain: java.util.LinkedHashMap[\"GeoPoint\"]->java.util.ArrayList[0])"}]
at app.metatron.discovery.domain.engine.DruidEngineRepository$QueryResponseErrorHandler.handleError(DruidEngineRepository.java:115)
at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:707)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:660)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:620)
at org.springframework.web.client.RestTemplate.exchange(RestTemplate.java:538)
at app.metatron.discovery.domain.engine.AbstractEngineRepository.call(AbstractEngineRepository.java:120)
... 28 common frames omitted