Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

Amazon Glue を ClickHouse および Spark と統合する

ClickHouse対応

Amazon Glue は、Amazon Web Services (AWS) が提供する完全マネージド型のサーバーレス データインテグレーションサービスです。分析、機械学習、アプリケーション開発に向けて、データの検出、準備、変換を簡素化します。

インストール

Glue コードを ClickHouse と統合するには、次のいずれかの方法で Glue から公式の Spark コネクタを使用できます。

  • AWS Marketplace から ClickHouse Glue コネクタをインストールする (推奨) 。
  • Spark Connector の JAR を Glue ジョブに手動で追加する。

コネクタをサブスクライブする

アカウントでコネクタを利用するには、AWS Marketplace で ClickHouse AWS Glue Connector をサブスクライブします。

必要な権限を付与する

最小権限のガイドに記載されているとおり、Glue ジョブの IAM ロールに必要な権限があることを確認してください。

コネクタを有効化して接続を作成する

サブスクライブ後、ジョブの要件に合った Glue バージョンを選択します。Additional details セクションの Usage instructions で、Open Glue Studio - Add ClickHouse connector へのリンクをクリックします。すると、主要なフィールドが事前入力された Glue の接続作成ページが開きます。接続に名前を付けて、作成をクリックしてください (この段階では ClickHouse の接続情報を指定する必要はありません) 。

ClickHouse Glue コネクタ向け AWS Marketplace の使用手順

Glue ジョブで使用する

Glue ジョブで Job details タブを選択し、Advanced properties ウィンドウを展開します。Connections セクションで、先ほど作成した接続を選択します。コネクタは必要な JAR をジョブランタイムに自動的に追加します。

Glue Notebook の接続設定

認証情報に AWS Secrets Manager を使用する

ClickHouse のユーザー名とパスワードをジョブ内にハードコードする代わりに、AWS Secrets Manager に保存し、Glue の接続またはジョブスクリプトからそのシークレットを参照します。実行時には、Glue がシークレットを取得し、そのキー・バリューのペアをコネクタの接続オプションにマージします。

シークレットを作成する

AWS Secrets Manager で、キーがコネクタのオプション名と一致するキー・バリューのペアを含む その他のシークレットタイプ のシークレットを作成します。

Key Value
user ClickHouse のユーザー名
password ClickHouse のパスワード

シークレットに追加したキーはすべてコネクタに転送されるため、コードに含めたくない場合は、hostdatabase、そのほかのオプションもここに保存できます。

シークレットを参照する

シークレットをジョブで利用する方法は 2 つあります。

方法 1: Glue 接続にアタッチする。 Glue Studio で ClickHouse connection を作成または編集する際に、AWS secret フィールドへシークレット名を設定します。この接続を使用するジョブではシークレットが自動的に解決されるため、コードを変更する必要はありません。

方法 2: connection options で secretId を渡す。 シークレットが接続にアタッチされていない場合は、この方法を使用します。connectionName とあわせて secretId を追加します。

source = glueContext.create_dynamic_frame.from_options(
    connection_type="marketplace.spark",
    connection_options={
        "connectionName": "<your-connection-name>",
        "secretId": "clickhouse/glue/credentials",
        "database": "default",
        "table": "example_table"
    },
    transformation_ctx="clickhouse_source"
)

シークレット内の user キーと password キーは実行時にコネクタのオプションへマージされるため、スクリプト内でそれらを読み取る必要はありません。

以下の例では marketplace.spark を使用し、connectionName でコネクタを参照します。コネクタを手動でインストールした場合 (手動インストール タブ) は、代わりに connection_type="custom.spark" を使用し、classNamehosthttp_portuserpassword を options に直接指定してください。

接続自体に AWS シークレットをアタッチしている場合 (Using AWS Secrets Manager for credentials の Option 1) は、options から secretId を削除してください。Glue は接続から認証情報を自動的に取得します。

Glue Studio の visual editor では、ClickHouse コネクタをソースとしてもターゲットとしても使用できます。ClickHouse Spark Connector コンポーネントをキャンバスにドラッグし、データパイプラインに接続するだけです。

ClickHouse connector を使用した Glue Studio visual editor

詳細については、Spark ドキュメント を参照してください。

Navigation