このトピックでは、Streaming SQL ジョブを設定する方法について説明します。
始める前に
- プロジェクトを作成していること。 詳細は、「ワークフロープロジェクトの管理」をご参照ください。
- Spark Streaming SQL 依存ライブラリをダウンロードしていること。 詳細は、「このタスクについて」をご参照ください。
このタスクについて
Streaming SQL の詳細は、「Spark Streaming SQL」をご参照ください。
Streaming SQL ジョブを設定するとき、依存ライブラリを指定する必要があります。 次の表に、複数のデータソースをサポートするために Spark Streaming SQL で提供される依存ライブラリのバージョンと他の詳細情報を示します。 原則として、依存ライブラリの最新バージョンを使用する必要があります。
名前 | バージョン | リリース日 | 参照文字列 | 詳細 |
---|---|---|---|---|
datasources-bundle | 1.7.0 | 2019 年 7 月 29 日 | sharedlibs:streamingsql:datasources-bundle:1.7.0 | サポートされるデータソース:Kafka、Log Service、Druid、Table Store、HBase、JDBC。 |
- 参照文字列をコピーし、 E-MapReduce コンソールの [データプラットフォーム] の で使用します。
- 前の表のすべてのデータソースは、ストリームの読み取りと書き込みをサポートしています。
- 詳細は、「データソース」をご参照ください。
ステップ 1:Streaming SQL ジョブの作成
ステップ 2:ジョブの Streaming SQL 文の設定
E-MapReduce バックグラウンドでは、Streaming SQL ジョブは streaming-sql -f {SQL_SCRIPT}
の形式で送信されます。 Streaming SQL 文は、SQL_SCRIPT
に保存されます。
ジョブを作成した後、Streaming SQL 文をジョブのテキストボックスに入力します。
Streaming SQL 文の例:
--- Create a Log Service table
CREATE TABLE IF NOT EXISTS ${slsTableName}
USING loghub
OPTIONS (
sls.project = '${logProjectName}',
sls.store = '${logStoreName}',
access.key.id = '${accessKeyId}',
access.key.secret = '${accessKeySecret}',
endpoint = '${endpoint}'
);
--- Import data to HDFS
INSERT INTO
${hdfsTableName}
SELECT
col1, col2
FROM ${slsTableName}
WHERE ${condition}
ステップ 3:依存ライブラリと失敗対応ポリシーの指定
依存ライブラリ:Streaming SQL ジョブはデータソースライブラリに依存しています。 E-MapReduce は、これらのライブラリを依存ライブラリとしてスケジューリングセンターのリポジトリに公開します。 ジョブを作成するとき、ジョブの依存ライブラリを指定する必要があります。
失敗対応ポリシー:文の実行に失敗したときに実行される操作を指定します。