メインコンテンツへスキップ
メインコンテンツへスキップ

Azure Synapse と ClickHouse の連携

ClickHouse Supported

Azure Synapse は、ビッグデータ、データサイエンス、データウェアハウスを統合した分析サービスであり、高速かつ大規模なデータ分析を可能にします。 Synapse 内では、Spark プールがオンデマンドかつスケーラブルな Apache Spark クラスターを提供し、複雑なデータ変換や機械学習、外部システムとの連携を実行できます。

この記事では、Azure Synapse 内で Apache Spark を利用する際に、ClickHouse Spark connector と連携させる方法を説明します。

コネクタの依存関係を追加する

Azure Synapse では、次の 3 つのレベルでのパッケージ管理がサポートされています:

  1. 既定のパッケージ
  2. Spark プール レベル
  3. セッション レベル

Manage libraries for Apache Spark pools」ガイドに従い、次の必須となる依存関係を Spark アプリケーションに追加します。

  • clickhouse-spark-runtime-{spark_version}_{scala_version}-{connector_version}.jar - 公式 Maven
  • clickhouse-jdbc-{java_client_version}-all.jar - 公式 Maven

どのバージョンが要件に適合するかを確認するには、Spark Connector Compatibility Matrix ドキュメントを参照してください。

ClickHouse をカタログとして追加する

セッションに Spark の設定を追加する方法はいくつかあります。

  • セッションで読み込むカスタム設定ファイルを使用する
  • Azure Synapse の UI から設定を追加する
  • Synapse ノートブック内で設定を追加する

Manage Apache Spark configuration に従い、このコネクタに必要な Spark 設定を追加します。

たとえば、ノートブック内で次の設定を使って Spark セッションを構成できます。

%%configure -f
{
    "conf": {
        "spark.sql.catalog.clickhouse": "com.clickhouse.spark.ClickHouseCatalog",
        "spark.sql.catalog.clickhouse.host": "<clickhouse host>",
        "spark.sql.catalog.clickhouse.protocol": "https",
        "spark.sql.catalog.clickhouse.http_port": "<port>",
        "spark.sql.catalog.clickhouse.user": "<username>",
        "spark.sql.catalog.clickhouse.password": "password",
        "spark.sql.catalog.clickhouse.database": "default"
    }
}

以下のように必ず最初のセルに設定してください:

ノートブック経由で Spark の設定を行う

追加の設定については、ClickHouse Spark 設定ページを参照してください。

参考文献

ClickHouse Cloud を利用する場合は、必ず 必須の Spark 設定を行ってください。\

セットアップの検証

依存関係および設定が正しく構成されていることを確認するには、該当セッションの Spark UI を開き、Environment タブを表示します。 そこで、ClickHouse に関連する設定を探します。

Spark UI を使用した ClickHouse 設定の検証

参考資料