2.4.5 Kafkaトピック内のJSONデータにアクセスするためのビューの作成
Kafkaトピック内の、JSONデータを含むデータを問い合せるには、トピック・レコードの形式としてJSON_VARCHAR2
を指定してOracle SQL access to Kafka (OSaK)ビューを作成する必要があります。
Kafkaのレコード形式がJSON_VARCHAR2
である場合、参照表は使用されず、NULLとして渡される必要があります。
次の例では、レコード形式がJSONのトピックsensorj内の単一のパーティションに対して1つのビューを作成します。
DECLARE
views_created INTEGER;
application_id VARCHAR2(128);
BEGIN
ORA_KAFKA.CREATE_VIEWS
('MA1', –- The name of the cluster
'QUERYAPP_JSON', -- The name of the Kafka group
'sensorj', –- The name of the Kafka topic
‘JSON_VARCHAR2’, -- The format of the topic record
NULL, -- No reference table used for JSON
views_created, -- Output: number of views created
application_id); -- Output: the application id of the set of views
-- created that uniquely identifies the view
–- objects
dbms_output.put_line(‘views created = ‘ || views_created);
dbms_output.put_line(‘application id = ‘ || application_id);
END;
/
前述の例により、次のビューが作成されます。
SQL> describe KV_MA1_QUERYAPP_JSON_SENSORJ_0;
Name Null? Type
----------------------------------------- -------- ----------------------------
KAFKA$PARTITION NUMBER(38)
KAFKA$OFFSET NUMBER(38)
KAFKA$EPOCH_TIMESTAMP NUMBER(38)
KEY VARCHAR2(32767)
VALUE VARCHAR2(32767)
ここでは、KAFKA$PARTITION
はKafkaパーティションID、KAFKA$OFFSET
はKafkaレコードのオフセット、KAFKA$EPOCH_TIMESTAMP
はKafkaレコードのタイムスタンプです。KEY列およびVALUE列にはJSONデータが含まれています。