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

Gmail からデータを取り込む

備考

ベータ版

この機能はベータ版です。ワークスペース管理者は、 プレビュー ページからこの機能へのアクセスを制御できます。Databricksのプレビューを管理するを参照してください。

マネージド Gmail 取り込みパイプラインを作成し、メールボックスのメッセージ、ラベル、下書き、フィルター、およびプロファイルを Unity Catalog テーブルに読み込みます。パイプラインは、データ取り込み UI、Declarative Automation Bundles、または Pipelines API を使用して作成できます。各パイプラインは、接続で設定された単一のメールボックスを取り込みます。

要件

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

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

    • ワークスペースで Serverless コンピュートを有効にする必要があります。See Serverless コンピュートの要件.

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

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

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

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

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

  • Gmailから取り込むには、まず Gmail接続の作成 のステップを完了する必要があります。

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

取り込まれた各テーブルは、ストリーミングテーブルに書き込まれます。ソーススキーマは default です。取り込み可能なテーブルの一覧については、サポートされているテーブルを参照してください。

  1. Databricksワークスペースのサイドバーで、データ取り込みアイコン。 データ取り込み をクリックします。
  2. データの追加 ページの Databricks コネクタ で、 Gmail をクリックします。
  3. 取り込みウィザードの 接続 ページで、Gmailアクセス資格情報を保存している接続を選択します。メタストアに対する CREATE CONNECTION 特権がある場合は、 プラスアイコン。 接続の作成 をクリックして、Gmail接続の作成にある認証詳細を使用して新しい接続を作成できます。
  4. 次へ をクリックします。
  5. インジェスト設定 ページで、パイプラインの一意の名前を入力します。
  6. イベント Logs を書き込むカタログとスキーマを選択します。カタログに対する USE CATALOG 権限と CREATE SCHEMA 権限がある場合は、ドロップダウンメニューで プラスアイコン。 Create schema をクリックして新しいスキーマを作成できます。
  7. パイプラインの作成および続行 をクリックします。
  8. ソース ページで、取り込むテーブルを選択します。
  9. 保存して続行 をクリックします。
  10. 「宛先」 ページで、データをロードするカタログとスキーマを選択します。カタログに対してUSE CATALOGCREATE SCHEMA権限をお持ちの場合は、クリックできます。 プラスアイコン。 ドロップダウンメニューから「スキーマを作成」を選択して、新しいスキーマを作成します。
  11. 保存して続行 をクリックします。
  12. (オプション) スケジュールと通知 ページで、 プラスアイコン。 スケジュールの作成 をクリックします。宛先テーブルを更新する頻度を設定します。
  13. (オプション) プラスアイコン。 通知の追加 をクリックして、パイプライン操作の成功または失敗に関するEメール通知を設定し、 保存してパイプラインを実行 をクリックします。

メールボックスの選択

読み取り対象のメールボックスは、パイプラインではなく接続で設定されます。接続を作成するときに、 メールボックス Eメール (impersonate_email) フィールドを使用して構成します。Gmail 接続の作成を参照してください。サービスアカウントはドメイン全体の委任を通じてこのユーザーに偽装し、コネクタはそのユーザーのメールボックスを読み取ります。設定しない場合、接続はサービスアカウント自体として認証されますが、そのアカウントには取り込むメールボックスがありません。コネクタは、すべての行の mailbox 列としてメールボックスの値をスタンプします。

各接続で取り込めるメールボックスは1つだけです。複数のメールボックスを取り込むには、メールボックスごとに個別の接続とパイプラインを作成してください。

パイプラインが少なくとも毎週実行されるようにスケジュールを設定します

Databricksでは、少なくとも7日に1回はパイプラインを実行するようにスケジュールすることを推奨しています。messages テーブルと message_labels テーブルは、GmailのHistory APIを使用して増分同期されます。Gmailは履歴を限られた期間(通常は約7日間)保持します。

警告

パイプラインの実行頻度がGmailの履歴ウィンドウよりも低い場合、保存されているhistoryIdカーソルが期限切れになる可能性があります。その場合、次回のランでmessagesmessage_labelsの完全更新が実行されます。

これらの例を使用して、パイプラインを構成してください。

単一のソーステーブルを取り込む

以下のパイプライン定義ファイルは、単一のソーステーブルを取り込みます。pipeline_gmail リソースはメインのパイプラインであり、objects は取り込むテーブルの配列を定義します。この例では messages テーブルを取り込みます。

YAML
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema

# The main pipeline for gmail_dab
resources:
pipelines:
pipeline_gmail:
name: gmail_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <gmail-connection>
objects:
# An array of objects to ingest from Gmail. This example ingests the messages table.
- table:
source_schema: default
source_table: messages
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}

複数のソーステーブルを取り込む

次のパイプライン定義ファイルは、複数のソーステーブルを取り込みます。

YAML
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema

# The main pipeline for gmail_dab
resources:
pipelines:
pipeline_gmail:
name: gmail_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <gmail-connection>
objects:
# An array of objects to ingest from Gmail. This example ingests the messages and message_labels tables.
- table:
source_schema: default
source_table: messages
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
- table:
source_schema: default
source_table: message_labels
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}

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

以下は、宣言型オートメーションバンドルで使用するジョブ定義ファイルの例です。ジョブは毎日、前回のランからちょうど 1 日後にランされます。

YAML
resources:
jobs:
gmail_dab_job:
name: gmail_dab_job

trigger:
periodic:
interval: 1
unit: DAYS

email_notifications:
on_failure:
- <email-address>

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

次のステップ

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

その他のリソース