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

Gmail コネクタのリファレンス

このページには、Databricks Lakeflow Connect の Gmail コネクタのリファレンスが含まれています。

備考

ベータ版

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

一般的なコネクタの動作

  • このコネクタは読み取り専用です。https://gmail.googleapis.com``https://www.googleapis.com/auth/gmail.readonlyとしか通信せず、defaultスコープを使用します。ソースのメールボックスは一切変更されません。
  • 各接続で 1 つのメールボックスを取り込みます。コネクタは、すべての行の mailbox 列としてメールボックスの値をスタンプします。複数のメールボックスを取り込むには、メールボックスごとに個別の接続とパイプラインを作成します。
  • ソーススキーマは default です。
  • messages および message_labels テーブルは、Gmail History API を使用して増分同期されます。profilelabelslabels_detailsdrafts、およびfiltersのテーブルは完全更新のみとなります。
  • メッセージの添付ファイルは、messages テーブルの payload 列(payload.parts[].body.attachmentId)に含まれています。個別の添付ファイルテーブルはありません。

サポートされているテーブル

コネクタは、default ソーススキーマから次のテーブルを取り込みます。

テーブル

プライマリーキー

同期モード

profile

emailAddress

フルリフレッシュ

labels

mailbox, id

フルリフレッシュ

labels_details

mailbox, id

フルリフレッシュ

drafts

id

フルリフレッシュ

filters

id

フルリフレッシュ

messages

id

増分(Gmail History API、historyId

message_labels

message_id

増分(Gmail History API、historyId

テーブル

プライマリーキー

同期モード

profile

emailAddress

フルリフレッシュ

labels

mailbox, id

フルリフレッシュ

labels_details

mailbox, id

フルリフレッシュ

drafts

id

フルリフレッシュ

filters

id

フルリフレッシュ

messages

id

増分(Gmail History API、historyId

message_labels

message_id

増分(Gmail History API、historyId

宛先スキーマ

以降のセクションでは、各送信先テーブルの列について説明します。

プロファイル

Type

emailAddress

string (主キー)

messagesTotal

long

threadsTotal

long

historyId

string

mailbox

string

Type

emailAddress

string (主キー)

messagesTotal

long

threadsTotal

long

historyId

string

mailbox

string

ラベル

Type

mailbox

string (主キー)

id

string (主キー)

name

string

messageListVisibility

string

labelListVisibility

string

type

string

messagesTotal

long

messagesUnread

long

threadsTotal

long

threadsUnread

long

color

struct{textColor: string, backgroundColor: string}

Type

mailbox

string (主キー)

id

string (主キー)

name

string

messageListVisibility

string

labelListVisibility

string

type

string

messagesTotal

long

messagesUnread

long

threadsTotal

long

threadsUnread

long

color

struct{textColor: string, backgroundColor: string}

ラベルの詳細

labels_details テーブルは、labels と同じ列(mailboxidnametype、可視性フィールド、メッセージおよびスレッド数、そしてcolor)を持っています。各ラベルは、labels.get APIからの応答でエンリッチメントされます。

下書き

Type

id

string (主キー)

message

struct{id: string, threadId: string}

mailbox

string

Type

id

string (主キー)

message

struct{id: string, threadId: string}

mailbox

string

フィルター

Type

id

string (主キー)

criteria

struct{from: string, to: string, subject: string, query: string, negatedQuery: string, hasAttachment: boolean, excludeChats: boolean, size: long, sizeComparison: string}

action

struct{addLabelIds: array<string>, removeLabelIds: array<string>, forward: string}

mailbox

string

Type

id

string (主キー)

criteria

struct{from: string, to: string, subject: string, query: string, negatedQuery: string, hasAttachment: boolean, excludeChats: boolean, size: long, sizeComparison: string}

action

struct{addLabelIds: array<string>, removeLabelIds: array<string>, forward: string}

mailbox

string

メッセージ

Type

id

string (主キー)

threadId

string

snippet

string

historyId

string

internalDate

string

payload

structペイロード構造を参照)

sizeEstimate

long

mailbox

string

_ingestion_timestamp

timestamp

_row_deleted

boolean

_row_truncated

boolean

Type

id

string (主キー)

threadId

string

snippet

string

historyId

string

internalDate

string

payload

structペイロード構造を参照)

sizeEstimate

long

mailbox

string

_ingestion_timestamp

timestamp

_row_deleted

boolean

_row_truncated

boolean

ペイロード構造

payload 列は、メッセージ MIME ツリーを最大 8 レベルのネストまで具体化します。各レベルの構造は次のとおりです。

struct{
partId: string,
mimeType: string,
filename: string,
headers: array<struct{name: string, value: string}>,
body: struct{attachmentId: string, size: long, data: string},
parts: array<payload>
}

添付ファイルは payload.parts[].body.attachmentId 内に含まれています。8レベルを超えてネストされたパーツは、構造体の列には展開されません。

message_labels

Type

message_id

string (主キー)

threadId

string

labelIds

array<string>

mailbox

string

_ingestion_timestamp

timestamp

_row_deleted

boolean

_row_truncated

boolean

Type

message_id

string (主キー)

threadId

string

labelIds

array<string>

mailbox

string

_ingestion_timestamp

timestamp

_row_deleted

boolean

_row_truncated

boolean

増分同期

messages テーブルと message_labels テーブルは段階的に同期されます:

  • 最初のランでは、メールボックスの完全なブートストラップクロールを実行します。
  • 後続のランでは、profileリソースから取得したhistoryIdカーソルをキーとしてusers.history.listを呼び出し、前回のラン以降の変更のみを取得します。
  • 削除は _row_deleted tombstoneとして出力されます。
  • Gmail が保存された historyId を期限切れにした場合(カーソルが Gmail の保持期間よりも古いため、History API が 404 を返す)、コネクタは自動的に影響を受けるテーブルの完全更新にフォールバックします。
重要

Gmail は、限られた期間(通常は約 7 日間)の履歴を保持します。保存された historyId がその期間内に収まるように、少なくとも 7 日に 1 回はパイプラインを実行するようにスケジュールを設定してください。カーソルが期限切れになると、次回のランで messagesmessage_labels の完全更新が実行されます。

messagesテーブルおよびmessage_labelsテーブルはSCDタイプ2の履歴追跡をサポートしていません。これらのテーブルにSCD Type 2を設定するとパイプライン検証が失敗します。

レート制限

Gmail が HTTP 403 レスポンスを返すと、コネクタは Retry-After ヘッダーを読み取り(最小バックオフは1秒)、自動的にリクエストを再試行します。