ClickHouse SQL を使用すると、分散型 SQL クエリを実行し、構造化データを処理することでジョブの効率を向上させることができます。DataWorks では、ClickHouse SQL ノードを使用して ClickHouse SQL タスクを開発・定期スケジュール実行できます。また、これらのタスクを他のジョブと統合することも可能です。本トピックでは、ClickHouse SQL ノードを用いたタスク開発手順について説明します。
前提条件
ビジネスプロセスが作成されました。
DataWorks の DataStudio における開発操作は、ビジネスプロセス単位で整理されています。そのため、ノードを作成する前に、必ずビジネスプロセスを作成する必要があります。詳細については、「ビジネスプロセスの作成」をご参照ください。
EMR ClickHouse クラスターまたは ApsaraDB for ClickHouse クラスターが作成済みであり、必要な事前準備が完了していること。
EMR では、DataLake および Hadoop の 2 種類のエンジンタイプをサポートしています。ノード作成前の事前準備内容は、選択するエンジンタイプによって異なります。これらの準備は、EMR および DataWorks の両方で実施できます。
DataLake の場合:「DataLake クラスターの構成」および「DataWorks の構成」をご参照ください。
Hadoop の場合:「Hadoop クラスター上での開発のための事前準備」をご参照ください。
ClickHouse 計算リソースをワークスペースにアタッチ済みであること。
DataWorks 内に、ご利用の ClickHouse データベースに対応する ClickHouse 計算リソースを作成し、DataStudio にアタッチする必要があります。これにより、計算リソースを介して ClickHouse データにアクセスし、開発操作を実行できます。
サーバーレスリソースグループを購入済みであり、ApsaraDB for ClickHouse クラスターが配置されている VPC(仮想プライベートクラウド)にそのリソースグループがアタッチ済みであること。詳細については、「サーバーレスリソースグループの使用」をご参照ください。
説明ClickHouse SQL ノードのタスクは、サーバーレスリソースグループ(推奨)または専用スケジューリングリソースグループ上で実行できます。
ステップ 1:ClickHouse SQL ノードの作成
DataStudio ページに移動します。
DataWorks コンソールにログインします。上部ナビゲーションバーから、対象のリージョンを選択します。左側のナビゲーションウィンドウで、を選択します。表示されたページで、ドロップダウンリストから対象のワークスペースを選択し、[データ開発へ移動] をクリックします。
対象のビジネスプロセスを右クリックし、 を選択します。
[ノードの作成] ダイアログボックスで、ノードの [名前] を入力し、[OK] をクリックします。ノードが作成されると、そのノード内でタスクの開発および設定が可能になります。
ステップ 2:ClickHouse SQL タスクの開発
(任意)ClickHouse 計算リソースの選択
ワークスペース内に複数の ClickHouse 計算リソースが存在する場合は、ClickHouse SQL ノードの編集ページでいずれか 1 つを選択する必要があります。1 つのみ存在する場合は、デフォルトでそのリソースが使用されます。
SQL コードの開発
ClickHouse SQL ノードのコードエディタで、タスク用の SQL コードを記述します。以下のコードは例です。
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', '1');
SELECT * FROM ck_test.first_table;ステップ 3:タスクのスケジュール設定
ノードタスクを定期実行するには、ノードの編集ページ右側にある [スケジュール設定] をクリックします。その後、タスクのスケジュールプロパティを設定できます。詳細については、「タスクのスケジュールプロパティの概要」をご参照ください。
ノードをコミットするには、まず [再実行] プロパティおよび [依存先祖ノード] を設定する必要があります。
ステップ 4:ジョブのデバッグ
タスクが期待通りに実行されるかを確認するために、必要に応じてテストを実施します。
(任意)タスク実行用のリソースグループを選択し、カスタムパラメーターに値を割り当てます。
ツールバーの
アイコンをクリックします。[パラメーター] ダイアログボックスで、テスト実行のスケジューリングに使用するリソースグループを選択します。タスクコードでスケジュールパラメーター変数を使用している場合、テスト用に変数に値を割り当てることができます。パラメーターへの値の割り当て方法については、「タスクのテスト手順」をご参照ください。
SQL 文を保存して実行します。
ツールバーの
アイコンをクリックして SQL 文を保存します。
アイコンをクリックして SQL タスクを実行します。(任意)スモークテストを実施します。
スケジューリングノードタスクが期待通りに実行されるかを確認するには、開発環境でスモークテストを実施できます。ノードのコミット時またはコミット後に実行可能です。詳細については、「スモークテストの実施」をご参照ください。
ステップ 5:タスクのコミットおよび公開
ノードの設定が完了したら、タスクをコミットおよび公開します。タスクが公開されると、設定されたスケジュールに従って定期的に実行されます。
ツールバーの
アイコンをクリックしてノードを保存します。ツールバーの
アイコンをクリックしてノードをコミットします。タスクをコミットする際、[変更内容] を [コミット] ダイアログボックスに入力します。また、ノードのコミット後にコードレビューを実施するかどうかを選択できます。
説明ノードをコミットするには、あらかじめ [再実行] プロパティおよび [依存先祖ノード] を設定する必要があります。
コードレビューは、タスクコードの品質を確保し、レビューなしで誤ったコードが公開されることによるエラーを防止します。コードレビューを有効にした場合、コミットされたコードはレビュアーによる承認を受けてから公開されます。詳細については、「コードレビュー」をご参照ください。
標準モードのワークスペースを使用している場合、タスクをコミットした後、ノードの編集ページ右上隅の [公開] をクリックします。これにより、タスクが本番環境に公開されます。詳細については、「タスクの公開」をご参照ください。
次のステップ
タスクがコミットおよび公開されると、ノードの設定に従って定期的に実行されます。ノードの編集ページ右上隅の [運用管理] をクリックすると、オペレーションセンターが開き、自動トリガーされたタスクのスケジュールおよび実行状況を確認できます。詳細については、「自動トリガーされたタスクの管理」をご参照ください。