--- articleId: eb6f18f3-3def-48df-bb7b-9caed9964b93 slug: data-destination-databricks title: 転送先 - Databricks parentCategoryId: 03f04962-e96f-49cb-9c01-d84d025cc41a languageCode: ja --- ## 概要 Databricksへデータを転送する設定のDocsです。 :::(Info) (利用可能なクラウド環境) 転送元・転送先Databricksは、以下のいずれのクラウド環境においても利用可能です。 - [Databricks on AWS](https://www.databricks.com/product/aws) - [Databricks on Google Cloud](https://www.databricks.com/product/google-cloud) - [Azure Databricks](https://www.databricks.com/product/azure) TROCCOは、データ転送時の一時ファイルストレージとしてUnity Catalog Volumeを利用しているため、各クラウドサービス固有のストレージサービスやインターフェイスに依存しません。 ::: ## 制約 ### 利用できないデータ型 - 次の型は Databricks JDBC Driver のサポート対象外のため、転送先テーブルのカラムに存在する場合エラーが発生します。 - `TIMESTAMP_NTZ` ([Currently TIMESTAMP_NTZ type is not yet supported in JDBC Drivers](https://docs.databricks.com/en/sql/language-manual/data-types/timestamp-ntz-type.html#notes)) - `INTERVAL` ([Delta Lake does not support the INTERVAL type](https://docs.databricks.com/en/sql/language-manual/data-types/interval-type.html)) - 次の型はサポート対象外のため、カラムに値を転送できません。 - `BINARY` - `ARRAY` - `MAP` - `STRUCT` ## 設定項目 ### STEP1 基本設定 | 項目名 | 必須 | デフォルト値 | 内容 | | --- | --- | --- | --- | | Databricks接続情報 | Yes | - | あらかじめ登録してある[Databricksの接続情報](/docs/connection-configuration-databricks)から、今回の転送設定に必要な権限を持つものを選択します。 | | カタログ | Yes | - | 転送先のカタログ名を選択します。| | スキーマ | Yes | - | 転送先のスキーマ名を選択します。| | テーブル | Yes | - | 転送先のテーブル名を選択します。
対象テーブルが転送先のデータベース・スキーマ内に存在しない場合は、自動的に作成されます。| | 転送モード | Yes | 追記(`INSERT`) | 転送モードを選択します。
詳しくは、後述の[転送モードについて](/docs/data-destination-databricks#転送モードについて)を参照ください。| | マージキー | No | - | **転送モード**で`UPSERT (MERGE)`を選択したときに入力できます。
プライマリーキーが転送先のテーブルに存在しない場合、マージキー(主キー)扱いとする、カラムの名前を入力してください。
マージキーには、値の重複がなく、NULL値も持たないカラムを入力してください。| ### STEP1 詳細設定 | 項目名 | デフォルト値 | 内容 | | --- | --- | --- | | バッチサイズ (MB) | 50 | バッチサイズを指定します。 | | デフォルトのタイムゾーン | Etc/UTC | デフォルトのタイムゾーンを指定します。 | ## 補足事項 #### 転送モードについて | 転送モード | 内容 | | --- | --- | | 追記(`INSERT`) | まず一時テーブルを作成し、データを転送します。
すべての一時テーブルの作成が完了したら、対象テーブルにデータを挿入します。 | | 追記(`INSERT DIRECT`) | 対象テーブルに直接行を挿入します。
転送が途中で失敗した場合、**対象テーブルにデータが一部挿入されている可能性があります。** | | 全件洗い替え (`TRUNCATE INSERT`) | まず一時テーブルを作成し、一時テーブルにデータを転送します。
すべての一時テーブルの作成が完了したら、対象テーブルの中身を削除し、そのあとに対象テーブルにデータを挿入します。 | | 全件洗い替え (`REPLACE`) | まず一時テーブルを作成し、データを転送します。
一時テーブルの作成が完了したら、対象テーブルを削除し、一時テーブルを対象名に変更します。
転送が途中で失敗した場合、**対象テーブルが削除される可能性があります**。 | | `UPSERT (MERGE)` | まず一時テーブルを作成し、データを転送します。
すべての一時テーブルの作成が完了したら、以下の処理を行います。
対象テーブルに対して、一時テーブルのマージキーと値が一致する行は更新され、一致しない行は挿入されます。|