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バケットにデータ転送します。
Datahub画面から
ジョブフロー > ジョブの設定 > ジョブを追加 > クエリ実行結果のエクスポート > 外部サービス > 接続先の作成・管理 > Google Cloud Storage > 接続先に設定をクリックします。バケット名はDatahub画面から
設定 > サービスアカウント管理 > GCSバケットへの権限付与済みGoogleサービスアカウント > バケット名から取得します。
※ファイルパスは必要に応じて指定してください。実行方法を選択してスケジュールを設定し、保存して完了をクリックします。その後ジョブフローを実行してください。
※詳細はGoogle Cloud Storage エクスポートをご確認ください
払い出しGCSからDatabricksへのデータコピー
Google Cloud Storage(GCS)の外部ロケーションに接続するを参考に進めてください。
GCS バケットの外部ロケーションを作成するを参考にすることで、KARTE Datahubでエクスポートしたデータをカタログとして登録することが可能です。
Databricks -> KARTE Datahubのデータ連携
Databricksから払い出しGCSへのデータコピー
ノートブックを利用して外部ロケーションで利用している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バケットからデータ転送します。
Datahub画面から
ジョブフロー > ジョブの設定 > ジョブを追加 > データテーブルへインポート > 外部サービス > 接続先からGoogle Cloud Storageを選択します。エクスポートの際と同様に個別設定を行います。
※詳細はGoogle Cloud Storage インポートをご確認ください実行方法を選択してスケジュールを設定し、保存して完了をクリックし、その後ジョブフローを実行してください。
GCSからフェデレーションテーブルとして読み込み
GCSに直接出力されたParquetファイル, CSVファイルを直接テーブルとして読み込みすることも可能です。
データセット > 任意のデータセット > テーブルを作成 > フェデレーションテーブルを作成でファイルフォーマットでParquetを指定して作成を行います。.
詳細はフェデレーションテーブルを作成するをご確認ください。