メインコンテンツまでスキップ

OneDriveからデータを取り込む

備考

ベータ版

この機能はベータ版です。ワークスペース管理者は、 Lakeflow Connect for OneDrive For Business のプレビュー にオプトインすることで、 Previews ページからこの機能へのアクセスを制御できます。「Databricks プレビューの管理」を参照してください。

このページでは、Lakeflow Connectを使用して、管理対象のMicrosoft OneDrive取り込みパイプラインを作成する方法を説明します。このパイプラインは、OneDriveからDeltaテーブルにファイルを取り込み、ソースとの同期状態を維持します。

始める前に​

  • 取り込みパイプラインを作成するには、まず次の要件を満たす必要があります。

    • ワークスペースでUnity Catalogが有効になっている必要があります。

    • ワークスペースでServerlessコンピュートが有効になっている必要があります。Serverlessコンピュートの要件を参照してください。

    • 新しい接続を作成するには、メタストアに対する CREATE CONNECTION 特権が必要です。Unity Catalog での特権の管理を参照してください。

      コネクタが UI ベースのパイプライン オーサリングをサポートしている場合、管理者はこのページのステップを完了することで、接続とパイプラインを同時に作成できます。 ただし、パイプラインを作成するユーザーが API ベースのパイプライン オーサリングを使用している場合、または管理者以外のユーザーである場合、管理者はまずカタログ エクスプローラーで接続を作成する必要があります。 「管理対象取り込みソースへの接続」を参照してください。

    • 既存の接続を使用するには、接続オブジェクトに対する USE CONNECTION 特権または ALL PRIVILEGES が必要です。

    • ターゲットカタログに対するUSE CATALOG権限が必要です。

    • 既存のスキーマに対するUSE SCHEMA権限およびCREATE TABLE権限、またはターゲット カタログに対するCREATE SCHEMA権限が必要です。

  • Databricks Runtime 19以上を使用してください。API または Declarative Automation Bundles パイプライン定義で、channelをPREVIEWに設定します。

  • Declarative Automation Bundles を使用するには、Databricks CLI バージョン 1.23.0 以降を使用してください。旧バージョンでは、パイプライン定義から onedrive_options が削除されています。

  • OneDrive から取り込むには、まずサポートされている認証方法を構成し、接続を作成する必要があります。「OneDrive 接続を作成」を参照してください。

取り込みパイプラインを作成する​

サポートされているファイル形式の一覧については、file_ingestion_optionsパラメーターを参照してください。コネクタ固有の制限事項については、Microsoft OneDriveコネクタの制限事項を参照してください。

宣言型オートメーションバンドルを使用して、OneDrive パイプラインをコードとして管理します。バンドルには、ジョブとタスクの YAML 定義を含めることができ、Databricks CLI を使用して管理され、異なるターゲット ワークスペース(開発、ステージング、本番運用など)で共有およびランを実行できます。「宣言型オートメーションバンドルとは?」をご覧ください。

  1. Databricks CLI を使用してバンドルを作成するには、次の手順を実行します。

    Bash
    databricks bundle init
  2. バンドルに新しいリソースファイルを2つ追加してください:

  3. Databricks CLIを使用してパイプラインをデプロイする:

    Bash
    databricks bundle deploy

バンドルをデプロイすると、パイプラインとジョブが作成されます。ジョブは、ジョブ定義のスケジュールに従ってパイプラインを実行します。

ソースURLを選択する​

パイプライン定義内の各オブジェクトは、connector_options.onedrive_options.urlでソースを指定します。URLは、OneDrive for Businessの 「マイ ファイル」 ドライブ内にある、次のいずれかのリソースを指している必要があります:

  • ドライブのルート
  • フォルダ
  • ファイル
  • 有効な共有Link

URLは<tenant>-my.sharepoint.comのような個人用OneDriveホストを使用する必要があります。以下のURLはサポートされていません。

  • SharePointサイトのURL(/sites/...)
  • Consumer OneDrive URL(onedrive.live.comなど)または 1drv.ms
  • ホスト URL のみ
  • 個人用ドライブ外のパス

URLの例と、OneDriveからURLをコピーする手順については、OneDriveからファイルを読み取るを参照してください。

例​

次の例を使用して、パイプラインを構成します。各プレースホルダーを、環境に合わせた値に置き換えます。

ファイルを非構造化データとして取り込む​

OneDrive からファイルをバイナリコンテンツとして取り込みます。各ファイルは、ファイルのバイトデータとメタデータを含む行になります。たとえば RAG アプリケーションなど、後続処理を行う予定の PDF、Office ドキュメント、画像、その他のファイルには、このアプローチを使用します。

注記

ベータ版で利用可能なFILEタイプは、ファイルのバイトデータではなく、各ファイルとそのメタデータへのガバナンス管理された参照を保存するため、読み取りパフォーマンスが向上します。BINARYFILEタイプではなくFILEタイプとしてファイルを取り込むには、「FILEタイプとしてファイルを取り込む(ベータ版)」を参照してください。

YAML
resources:
pipelines:
onedrive_binary_pipeline:
name: onedrive_binary_pipeline
catalog: main
schema: ingest_destination_schema
channel: PREVIEW
ingestion_definition:
connection_name: <onedrive-connection>
objects:
- table:
destination_catalog: main
destination_schema: ingest_destination_schema
destination_table: drive_files
connector_options:
onedrive_options:
entity_type: FILE
url: https://mytenant-my.sharepoint.com/personal/user_mytenant_onmicrosoft_com/Documents
file_ingestion_options:
format: BINARYFILE
schema_evolution_mode: NONE

ファイルをFILEタイプとして取り込む(ベータ版)​

備考

ベータ版

この機能はベータ版です。

各ソースファイルを Unity Catalog ボリュームにコピーし、各ファイルとそのメタデータへのガバナンス管理された参照を宛先テーブルに保存するため、ファイルをFILEタイプとして取り込みます。宛先テーブルには file 列が公開されており、ai_parse_documentなどの関数やユーザー定義関数(UDF)に渡すことができます。

FILEタイプを使用するには、パイプラインで次の項目を構成します:

  • パイプラインのchannelをPREVIEWに設定します。
  • file_ingestion_options.formatをFILEに設定します。
  • databricks.filespace-previewテーブルプロパティを設定して、Unity Catalogがマネージドストレージとして使用するボリュームを宣言します。

FILEの要件と動作については、FILEタイプとしてファイルを取り込むを参照してください。

YAML
resources:
pipelines:
onedrive_file_pipeline:
name: onedrive_file_pipeline
catalog: <catalog>
schema: <schema>
channel: PREVIEW
ingestion_definition:
connection_name: <onedrive-connection>
objects:
- table:
destination_catalog: <catalog>
destination_schema: <schema>
destination_table: <destination-table>
table_configuration:
table_properties:
databricks.filespace-preview: /Volumes/<catalog>/<schema>/<volume>/
connector_options:
onedrive_options:
entity_type: FILE
url: https://mytenant-my.sharepoint.com/personal/user_mytenant_onmicrosoft_com/Documents
file_ingestion_options:
format: FILE
schema_evolution_mode: NONE

構造化ファイルを取り込む​

OneDriveフォルダーから構造化ファイル(例:JSONファイル)を取り込みます。ソースファイルの各行が、送信先テーブルの1行になります。

YAML
resources:
pipelines:
onedrive_json_pipeline:
name: onedrive_json_pipeline
catalog: main
schema: ingest_destination_schema
channel: PREVIEW
ingestion_definition:
connection_name: <onedrive-connection>
objects:
- table:
destination_catalog: main
destination_schema: ingest_destination_schema
destination_table: json_files
connector_options:
onedrive_options:
entity_type: FILE
url: https://mytenant-my.sharepoint.com/personal/user_mytenant_onmicrosoft_com/Documents/json_folder
file_ingestion_options:
format: JSON
schema_evolution_mode: NONE

ファイルのメタデータのみを取り込む​

ファイルのメタデータ(名前、サイズ、Timestamp、パス)を、ファイルの内容をdownloadせずに取り込みます。ファイルの内容を取り込むオーバーヘッドなしに、ファイルのインベントリが必要な場合は、このアプローチを使用します。

entity_typeをFILE_METADATAに設定してください。FILE_METADATAの取り込みにはBINARYFILE形式を使用する必要があります。メタデータのみの取り込みでは、構造化形式および半構造化形式はサポートされていません。

YAML
resources:
pipelines:
onedrive_metadata_pipeline:
name: onedrive_metadata_pipeline
catalog: main
schema: ingest_destination_schema
channel: PREVIEW
ingestion_definition:
connection_name: <onedrive-connection>
objects:
- table:
destination_catalog: main
destination_schema: ingest_destination_schema
destination_table: file_metadata
connector_options:
onedrive_options:
entity_type: FILE_METADATA
url: https://mytenant-my.sharepoint.com/personal/user_mytenant_onmicrosoft_com/Documents
file_ingestion_options:
format: BINARYFILE
schema_evolution_mode: NONE

宣言型オートメーションバンドルのジョブ定義ファイル​

このサンプルジョブ定義ファイルは、毎日パイプラインをランします。非構造化データとしてのファイルの取り込みからパイプラインを更新します。別のパイプラインを更新するには、onedrive_binary_pipelineをそのパイプラインのリソースキーに置き換えます。

YAML
resources:
jobs:
onedrive_job:
name: onedrive_job

trigger:
periodic:
interval: 1
unit: DAYS

email_notifications:
on_failure:
- <email-address>

tasks:
- task_key: refresh_pipeline
pipeline_task:
pipeline_id: ${resources.pipelines.onedrive_binary_pipeline.id}

ファイル取り込みオプションを構成する​

file_ingestion_optionsブロックは、ファイルがどのように処理されるかを制御します。すべてのオプションは、パイプライン定義のconnector_options.onedrive_options.file_ingestion_optionsブロック内で設定されます。次のスニペットでは、Declarative Automation Bundles YAML構文を使用しています。ノートブックまたはAPIパイプライン定義では、JSONで同じキーを使用します。すべてのパラメーターについては、 file_ingestion_optionsパラメーターを参照してください。

ファイルフィルター​

ソースURLから取り込むファイルを制限するには、file_filtersを使用します:

YAML
file_ingestion_options:
format: CSV
file_filters:
- path_filter: invoices/*.csv
- modified_after: 2026-01-01T00:00:00

スキーマ進化とスキーマヒント​

schema_evolution_mode を設定して、受信ファイル内の新しい列の処理方法を制御します。schema_hints を使用して、推測された列の型を上書きします。

スキーマ進化は、CSV、JSON、XML、PARQUET、AVROにのみ適用されます。その他の形式(BINARYFILE、FILE、EXCEL、ORC)では、schema_evolution_modeをNONEに設定します。

YAML
file_ingestion_options:
format: CSV
schema_evolution_mode: ADD_NEW_COLUMNS_WITH_TYPE_WIDENING
schema_hints: order_id INT, amount DOUBLE, ts TIMESTAMP

スキーマ進化とスキーマヒントの情報については、Auto Loaderでスキーマ推論と進化を構成するを参照してください。

形式固有のオプション​

形式固有のオプションはformat_optionsを使用して渡します:

YAML
file_ingestion_options:
format: CSV
format_options:
header: 'true'
sep: ','

サポートされるキーは、標準の Auto Loader 形式オプションです。Spark データソースのオプションを参照してください。

一般的なパターン​

高度なパイプライン構成については、「管理された取り込みパイプラインの一般的なパターン」を参照してください。

次のステップ​

パイプラインを起動、スケジュール設定し、アラートを設定する。一般的なパイプラインのメンテナンスタスクを参照してください。

その他のリソース​