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 を使用して増分同期されます。profile、labels、labels_details、drafts、およびfiltersのテーブルは完全更新のみとなります。- メッセージの添付ファイルは、
messagesテーブルのpayload列(payload.parts[].body.attachmentId)に含まれています。個別の添付ファイルテーブルはありません。
サポートされているテーブル
コネクタは、default ソーススキーマから次のテーブルを取り込みます。
テーブル | プライマリーキー | 同期モード |
|---|---|---|
|
| フルリフレッシュ |
|
| フルリフレッシュ |
|
| フルリフレッシュ |
|
| フルリフレッシュ |
|
| フルリフレッシュ |
|
| 増分(Gmail History API、 |
|
| 増分(Gmail History API、 |
宛先スキーマ
以降のセクションでは、各送信先テーブルの列について説明します。
プロファイル
列 | Type |
|---|---|
|
|
|
|
|
|
|
|
|
|
ラベル
列 | Type |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ラベルの詳細
labels_details テーブルは、labels と同じ列(mailbox、id、name、type、可視性フィールド、メッセージおよびスレッド数、そしてcolor)を持っています。各ラベルは、labels.get APIからの応答でエンリッチメントされます。
下書き
列 | Type |
|---|---|
|
|
|
|
|
|
フィルター
列 | Type |
|---|---|
|
|
|
|
|
|
|
|
メッセージ
列 | Type |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ペイロード構造
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 |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
増分同期
messages テーブルと message_labels テーブルは段階的に同期されます:
- 最初のランでは、メールボックスの完全なブートストラップクロールを実行します。
- 後続のランでは、
profileリソースから取得したhistoryIdカーソルをキーとしてusers.history.listを呼び出し、前回のラン以降の変更のみを取得します。 - 削除は
_row_deletedtombstoneとして出力されます。 - Gmail が保存された
historyIdを期限切れにした場合(カーソルが Gmail の保持期間よりも古いため、History API が 404 を返す)、コネクタは自動的に影響を受けるテーブルの完全更新にフォールバックします。
Gmail は、限られた期間(通常は約 7 日間)の履歴を保持します。保存された historyId がその期間内に収まるように、少なくとも 7 日に 1 回はパイプラインを実行するようにスケジュールを設定してください。カーソルが期限切れになると、次回のランで messages と message_labels の完全更新が実行されます。
messagesテーブルおよびmessage_labelsテーブルはSCDタイプ2の履歴追跡をサポートしていません。これらのテーブルにSCD Type 2を設定するとパイプライン検証が失敗します。
レート制限
Gmail が HTTP 403 レスポンスを返すと、コネクタは Retry-After ヘッダーを読み取り(最小バックオフは1秒)、自動的にリクエストを再試行します。