hi,
根据文档[1]的描述,1.11的es sql connector如果在ddl里没有声明primary 
key,将会使用append模式sink数据,并使用es本身生成的id作为document_id。但是我在测试时发现,如果我的ddl里没有定义primary 
key,写入时没有正确生成document_id,反而是将index作为id生成了。导致只有最新的一条记录。下面是我的ddl定义:
不确定是我配置使用的方式不对,还是确实存在bug。。


CREATE TABLE ES6_SENSORDATA_OUTPUT (
  event varchar,
  user_id varchar,
  distinct_id varchar,
  _date varchar,
  _event_time varchar,
  recv_time varchar,
  _browser_version varchar,
  path_name varchar,
  _search varchar,
  event_type varchar,
  _current_project varchar,
  message varchar,
  stack varchar,
  component_stack varchar,
  _screen_width varchar,
  _screen_height varchar
) WITH (
'connector' = 'elasticsearch-6',
'hosts' = '<ES_YUNTU.SERVERS>',
'index' = 'flink_sensordata_target_event',
'document-type' = 'default',
'document-id.key-delimiter' = '$',
'sink.bulk-flush.interval' = '1000',
'failure-handler' = 'fail',
'format' = 'json'
)




[1]https://ci.apache.org/projects/flink/flink-docs-release-1.11/dev/table/connectors/elasticsearch.html#key-handling

回复