Google Cloud Storage(以下GCSと記す)と「Databricks」の双方向のデータ連携が可能です。

データ連携のパターン

  • 以下の連携が可能です

    • Datahub上のデータをDatabricksへ送る

    • Databricks上のデータをDatahubへ送る

注意点

  • 連携サービス側の設定やプランによっては、意図した通りに連携できない可能性があります。

  • 必ず、事前に連携検証を実施してください。

KARTE Datahub側で事前に必要な設定

GCSバケットの払い出しをする

本ドキュメントではKARTE Datahubの払い出しGCSを使う場合を想定して説明をします。
※KARTE Datahubの払い出しGCSについてはKARTEが払い出したGCSバケットを利用するをご覧ください。

Databricks側で事前に必要な設定

Google Cloud Storage(GCS)の外部ロケーションに接続するを参考に GCS にアクセスするストレージ認証情報を作成とGCS バケットの外部ロケーションを作成してください。
上記手順で利用するサービスアカウントは、KARTEが払い出したGCSバケットを利用するで利用したサービスアカウントを利用してください。

KARTE Datahub -> Databricksのデータ連携

KARTE Datahubから払い出しGCSへのデータエクスポート

ジョブフローを用いて払い出しGCSバケットにデータ転送します。

  1. Datahub画面から ジョブフロー > ジョブの設定 > ジョブを追加 > クエリ実行結果のエクスポート > 外部サービス > 接続先の作成・管理 > Google Cloud Storage > 接続先に設定 をクリックします。

  2. バケット名はDatahub画面から 設定 > サービスアカウント管理 > GCSバケットへの権限付与済みGoogleサービスアカウント > バケット名 から取得します。
    ※ファイルパスは必要に応じて指定してください。

  3. 実行方法を選択してスケジュールを設定し、保存して完了をクリックします。その後ジョブフローを実行してください。
    ※詳細はGoogle Cloud Storage エクスポートをご確認ください

払い出しGCSからDatabricksへのデータコピー

Google Cloud Storage(GCS)の外部ロケーションに接続するを参考に進めてください。

GCS バケットの外部ロケーションを作成するを参考にすることで、KARTE Datahubでエクスポートしたデータをカタログとして登録することが可能です。

Databricks -> KARTE Datahubのデータ連携

Databricksから払い出しGCSへのデータコピー

  1. ノートブックを利用して外部ロケーションで利用しているGCSにファイルをエクスポートしてください。
    参考コード:

    # データの読み込み
    df = spark.table("{読み込むカタログ}.{読み込むスキーマ}.{読み込むテーブル}")
    
    # GCSのバケット名とパスを指定
    gcs_path = "gs://xxxxxx"
    
    # Parquet形式で保存する場合
    df.write.mode("overwrite").parquet(gcs_path)
    
    # CSV形式で保存する場合
    df.write.mode("overwrite").option("header", "true").csv(gcs_path)

GCSからKARTE Datahubへのデータインポート

ジョブフローを用いて払い出しGCSバケットからデータ転送します。

  1. Datahub画面から ジョブフロー > ジョブの設定 > ジョブを追加 > データテーブルへインポート > 外部サービス > 接続先 から Google Cloud Storage を選択します。

  2. エクスポートの際と同様に個別設定を行います。
    ※詳細はGoogle Cloud Storage インポートをご確認ください

  3. 実行方法を選択してスケジュールを設定し、保存して完了をクリックし、その後ジョブフローを実行してください。

GCSからフェデレーションテーブルとして読み込み

GCSに直接出力されたParquetファイル, CSVファイルを直接テーブルとして読み込みすることも可能です。

  1. データセット > 任意のデータセット > テーブルを作成 > フェデレーションテーブルを作成 でファイルフォーマットで Parquet を指定して作成を行います。.
    詳細はフェデレーションテーブルを作成するをご確認ください。