ClickHouse SQL を使用すると、分散 SQL クエリを実行して構造化データを処理し、ジョブの実行をより効率的にすることができます。DataWorks では、ClickHouse SQL ノードを使用して ClickHouse SQL タスクを開発し、定期的にスケジュール設定して、他のジョブと統合できます。このトピックでは、ClickHouse SQL ノードを使用してタスクを開発する方法について説明します。
前提条件
EMR エンジンには、DataLake タイプと Hadoop タイプがあります。必要な準備はエンジンのタイプによって異なります。EMR と DataWorks の両方で、ご利用のセットアップに必要な手順を完了してください。
DataLake:詳細については、「EMR データレイククラスターの設定」および「DataWorks の設定」をご参照ください。
Hadoop:「開発用の Hadoop クラスターの準備」をご参照ください。
ClickHouse データソースが作成され、ワークスペースにバインドされていること。
DataWorks で ClickHouse データソースを作成し、Data Studio にバインドする必要があります。これにより、開発のために ClickHouse データにアクセスできます。詳細については、「ClickHouse コンピューティングリソースの関連付け」をご参照ください。
ClickHouse SQL ノードが作成されていること。詳細については、「定期ワークフローのノード作成」をご参照ください。
手順
ClickHouse SQL ノードの編集ページで、次の手順を実行します。
SQL コードを開発する
SQL エディターで、タスクのコードを記述します。コード内で ${variable_name} 形式を使用して変数を定義し、ノード設定ページの右側にある [スケジュール] > [スケジューリングパラメーター] でこれらの変数に値を割り当てることができます。これにより、定期タスクの動的パラメーター渡しが可能になります。スケジューリングパラメーターの使用方法の詳細については、「スケジューリングパラメーターのソースと式」をご参照ください。次のコードは一例です。
CREATE DATABASE IF NOT EXISTS ck_test; CREATE TABLE IF NOT EXISTS ck_test.first_table ( `product_code` String, `package_name` String ) ENGINE = MergeTree ORDER BY package_name SETTINGS index_granularity = 8192; INSERT INTO ck_test.first_table (product_code, package_name) VALUES ('1', ${var}); SELECT * FROM ck_test.first_table;説明この例では、${var} を
1に設定します。SQL タスクを実行する
Run Configuration ペインで、[コンピューティングリソース] と [リソースグループ] を設定します。
[コンピューティングリソース] で、登録済みの CDH クラスターを選択します。
[リソースグループ] で、データソース接続テストに合格したスケジューリングリソースグループを選択します。詳細については、「ネットワーク接続ソリューション」をご参照ください。
ツールバーで、[データソースの選択] ドロップダウンリストをクリックします。表示されるダイアログボックスで、作成した ClickHouse データソースを選択し、[実行] をクリックします。
タスクを定期的に実行するには、そのスケジューリング設定を構成します。詳細については、「ノードのスケジューリング設定」をご参照ください。
ノードを設定した後、公開します。詳細については、「ノードとワークフローのデプロイ」をご参照ください。
ノードが公開されると、オペレーションセンターで定期タスクの実行ステータスを確認できます。詳細については、「オペレーションセンター入門」をご参照ください。