ClickHouse SQL を使用すると、分散 SQL クエリエンジンを使用して構造化データを処理できます。 これにより、ジョブの実行効率が向上します。 DataWorks は、ClickHouse SQL タスクを開発して定期的にスケジュールし、ClickHouse SQL タスクを他のタイプのタスクと統合するために使用できる ClickHouse SQL ノードを提供します。 このトピックでは、ClickHouse SQL ノードを使用してタスクを開発する方法について説明します。
前提条件
ワークフローが作成されている。
DataStudio では、さまざまなタイプの計算エンジンの開発操作はワークフローに基づいて実行されます。 したがって、ノードを作成する前に、ワークフローを作成する必要があります。 詳細については、「ワークフローを作成する」をご参照ください。
E-MapReduce(EMR)ClickHouse データベースまたはクラスタが作成され、関連する準備が行われている。
ノードを作成するための準備は、EMR と DataWorks で完了しています。 準備は、EMR クラスタのタイプによって異なります。 EMR は、次のタイプのクラスタを提供します。
DataLake クラスタ: 準備の詳細については、「EMR DataLake クラスタを構成する」および「DataWorks を構成する」をご参照ください。
Hadoop クラスタ: 準備の詳細については、「EMR クラスタを EMR 計算エンジンインスタンスとして DataWorks ワークスペースに関連付ける」をご参照ください。
サーバーレスリソースグループが購入され、ClickHouse クラスタがデプロイされている仮想プライベートクラウド(VPC)に関連付けられている。 詳細については、「サーバーレスリソースグループを作成して使用する」をご参照ください。
説明ClickHouse SQL ノードのタスクは、スケジューリングのためにサーバーレスリソースグループまたは旧バージョンの排他的リソースグループで実行できます。 タスクはサーバーレスリソースグループで実行することをお勧めします。
ステップ 1: ClickHouse SQL ノードを作成する
DataStudio ページに移動します。
DataWorks コンソール にログインします。 上部のナビゲーションバーで、目的のリージョンを選択します。 左側のナビゲーションウィンドウで、 を選択します。 表示されるページで、ドロップダウンリストから目的のワークスペースを選択し、[データ開発に移動] をクリックします。
目的のワークフローを見つけ、ワークフロー名を右クリックし、 を選択します。
[ノードの作成] ダイアログボックスで、[名前] パラメータを構成し、[確認] をクリックします。 その後、ノードを使用してタスクを開発し、タスクスケジューリングプロパティを構成できます。
ステップ 2: ClickHouse SQL タスクを開発する
(オプション)ClickHouse 計算リソースを選択する
複数の ClickHouse 計算リソースがワークスペースに追加されている場合は、ClickHouse SQL ノードの構成タブでいずれかを選択する必要があります。 1 つだけ追加されている場合は、デフォルトで使用されます。
SQL コードを開発する
ClickHouse 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: タスクをコミットしてデプロイする
ノードのタスクが構成されたら、タスクをコミットしてデプロイする必要があります。 タスクをコミットしてデプロイすると、システムはスケジューリング構成に基づいてタスクを定期的に実行します。
上部ツールバーの
アイコンをクリックしてタスクを保存します。上部ツールバーの
アイコンをクリックしてタスクをコミットします。[送信] ダイアログボックスで、[変更の説明] パラメータを構成します。 次に、ビジネス要件に基づいて、タスクのコミット後にタスクコードを確認するかどうかを決定します。
説明タスクをコミットする前に、[プロパティ] タブで [再実行] パラメータと [親ノード] パラメータを構成する必要があります。
コードレビュー機能を使用して、タスクのコード品質を確保し、無効なタスクコードによって発生するタスク実行エラーを防ぐことができます。 コードレビュー機能を有効にすると、コミットされたタスクコードは、コードレビューに合格した後でのみデプロイできます。 詳細については、「コードレビュー」をご参照ください。
標準モードのワークスペースを使用する場合は、タスクをコミットした後に本番環境にデプロイする必要があります。 ノードのタスクをデプロイするには、ノードの構成タブの右上隅にある [デプロイ] をクリックします。 詳細については、「タスクをデプロイする」をご参照ください。
次のステップ
タスクをコミットしてデプロイすると、タスクはスケジューリング構成に基づいて定期的に実行されます。 対応するノードの構成タブの右上隅にある [オペレーションセンター] をクリックしてオペレーションセンターに移動し、タスクのスケジューリングステータスを表示できます。 詳細については、「自動トリガーされたタスクを表示および管理する」をご参照ください。