Hi, Dale.
Thanks for your professional explanation ;) -- Best! Xuyang 在 2023-11-22 00:39:47,"Dale Lane" <dale.l...@uk.ibm.com> 写道: FYI in case it’s relevant for this discussion > I'm not sure what is the ` Avro JSON` means Avro supports two encoding mechanisms – binary encoding, and JSON encoding. [1] In other words, an Avro record, although normally represented as binary data, can instead be represented as a JSON document. I contributed an improvement to the Flink Avro connector to add support for JSON-encoded Avro as part of FLINK-33058 [2], although this is not yet merged. I must admit, I’m not familiar with OpenSearch or what the Flink OpenSearch connector offers, so my apologies if I’m just adding noise to the conversation here! Kind regards Dale [1] - https://avro.apache.org/docs/1.11.1/specification/#encodings [2] - https://issues.apache.org/jira/browse/FLINK-33058 From: Xuyang <xyzhong...@163.com> Date: Tuesday, 21 November 2023 at 15:17 To: Praveen Chandna <praveen.chan...@ericsson.com> Cc: user@flink.apache.org <user@flink.apache.org> Subject: [EXTERNAL] Re:Flink OpenSearch Connector - Avro JSON to JSON Hi, Praveen. `OpenSearch supports writing data in the JSON format, but in Flink its default data format is Avro JSON. ` I'm not sure what is the ` Avro JSON` means. In Opensearch connector, there are multi formats it supports sucn as "avro", ZjQcmQRYFpfptBannerStart | | | This Message Is From an External Sender | | This message came from outside your organization. | | Report Suspicious | | | ZjQcmQRYFpfptBannerEnd Hi, Praveen. `OpenSearch supports writing data in the JSON format, but in Flink its default data format is Avro JSON.` I'm not sure what is the ` Avro JSON` means. In Opensearch connector, there are multi formats it supports sucn as "avro", "format" and etc by adding corresponding jars, and the default format[1] is "json" you want. `OpenSearch Java Rest Client support writing the Java object directly to the openSearch using the below code.` Currently, the Opensearch connector connector always write the data serialized[2]. You can modify here directly in Opensearch connector, re-package it and try to use it. [1] https://github.com/apache/flink-connector-opensearch/blob/ab36cebc12db3aa0fa9df8a770b1845a78afe5bf/flink-connector-opensearch/src/main/java/org/apache/flink/connector/opensearch/table/OpensearchConnectorOptions.java#L136 [2] https://github.com/apache/flink-connector-opensearch/blob/ab36cebc12db3aa0fa9df8a770b1845a78afe5bf/flink-connector-opensearch/src/main/java/org/apache/flink/connector/opensearch/table/RowOpensearchEmitter.java#L110C32-L110C45 -- Best! Xuyang At 2023-11-21 13:32:35, "Praveen Chandna via user" <user@flink.apache.org> wrote: Hello Team Please helps to answer the below query. OpenSearch supports writing data in the JSON format, but in Flink its default data format is Avro JSON. What is the best practice to write data to Open Search using Flink OpenSearch Connector? Do we need to manually convert Avro JSON to JSON format or is there any in-built support in Flink to write JSON to openSearch. How can I write the existing complex nested JSON data into OpenSearch using the Flink connector rather than writing each key-value(or filed/value). OpenSearch Java Rest Client support writing the Java object directly to the openSearch using the below code. IndexRequest<UserDataObject> indexRequest =new IndexRequest.Builder<UserDataObject>().index(index).document(indexData).build(); https://opensearch.org/docs/latest/clients/java/ Thanks !! // Regards Praveen Chandna Unless otherwise stated above: IBM United Kingdom Limited Registered in England and Wales with number 741598 Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6 3AU