Github user HeartSaVioR commented on the issue:
https://github.com/apache/storm/pull/1751
Read JSON and calculate & filter, and store to AVRO:
```
CREATE EXTERNAL TABLE ORDERS (ID INT PRIMARY KEY, UNIT_PRICE INT, QUANTITY
INT) STORED AS INPUTFORMAT 'org.apache.storm.sql.runtime.serde.json.JsonScheme'
OUTPUTFORMAT 'org.apache.storm.sql.runtime.serde.json.JsonSerializer' LOCATION
'kafka://localhost:2181/brokers?topic=orders' TBLPROPERTIES '{ "producer": {
"bootstrap.servers": "localhost:9092", "acks": "1", "key.serializer":
"org.apache.storm.kafka.IntSerializer", "value.serializer":
"org.apache.storm.kafka.ByteBufferSerializer" } }'
CREATE EXTERNAL TABLE LARGE_ORDERS (ID INT PRIMARY KEY, TOTAL INT) STORED
AS INPUTFORMAT 'org.apache.storm.sql.runtime.serde.avro.AvroScheme'
OUTPUTFORMAT 'org.apache.storm.sql.runtime.serde.avro.AvroSerializer' LOCATION
'kafka://localhost:2181/brokers?topic=large_orders' TBLPROPERTIES ' {
"producer": { "bootstrap.servers": "localhost:9092", "acks": "1",
"key.serializer": "org.apache.storm.kafka.IntSerializer", "value.serializer":
"org.apache.storm.kafka.ByteBufferSerializer" }, "input.avro.schema":
"{\"type\": \"record\", \"name\": \"large_orders\", \"fields\" : [ {\"name\":
\"ID\", \"type\": \"int\"}, {\"name\": \"TOTAL\", \"type\": \"int\"} ]} ",
"output.avro.schema": "{\"type\": \"record\", \"name\": \"large_orders\",
\"fields\" : [ {\"name\": \"ID\", \"type\": \"int\"}, {\"name\": \"TOTAL\",
\"type\": \"int\"} ]} "}'
```
Read AVRO and store to JSON:
```
CREATE EXTERNAL TABLE LARGE_ORDERS (ID INT PRIMARY KEY, TOTAL INT) STORED
AS INPUTFORMAT 'org.apache.storm.sql.runtime.serde.avro.AvroScheme'
OUTPUTFORMAT 'org.apache.storm.sql.runtime.serde.avro.AvroSerializer' LOCATION
'kafka://localhost:2181/brokers?topic=large_orders' TBLPROPERTIES ' {
"producer": { "bootstrap.servers": "localhost:9092", "acks": "1",
"key.serializer": "org.apache.storm.kafka.IntSerializer", "value.serializer":
"org.apache.storm.kafka.ByteBufferSerializer" }, "input.avro.schema":
"{\"type\": \"record\", \"name\": \"large_orders\", \"fields\" : [ {\"name\":
\"ID\", \"type\": \"int\"}, {\"name\": \"TOTAL\", \"type\": \"int\"} ]} ",
"output.avro.schema": "{\"type\": \"record\", \"name\": \"large_orders\",
\"fields\" : [ {\"name\": \"ID\", \"type\": \"int\"}, {\"name\": \"TOTAL\",
\"type\": \"int\"} ]} "}'
CREATE EXTERNAL TABLE LARGE_ORDERS_JSON (ID INT PRIMARY KEY, TOTAL INT)
STORED AS INPUTFORMAT 'org.apache.storm.sql.runtime.serde.json.JsonScheme'
OUTPUTFORMAT 'org.apache.storm.sql.runtime.serde.json.JsonSerializer' LOCATION
'kafka://localhost:2181/brokers?topic=large_orders_json' TBLPROPERTIES '{
"producer": { "bootstrap.servers": "localhost:9092", "acks": "1",
"key.serializer": "org.apache.storm.kafka.IntSerializer", "value.serializer":
"org.apache.storm.kafka.ByteBufferSerializer" } }'
INSERT INTO LARGE_ORDERS_JSON SELECT ID, TOTAL FROM LARGE_ORDERS
```
Manual test succeed. +1
Thanks for the great work @vesense
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---