Référence du connecteur Gmail
Cette page contient des documents de référence pour le connecteur Gmail dans Databricks Lakeflow Connect.
Bêta
Cette fonctionnalité est en version bêta. Les administrateurs de Workspace peuvent contrôler l’accès à cette fonctionnalité depuis la page Aperçus . Consultez Gérer les aperçus Databricks.
Comportement général des connecteurs
- Le connecteur est en lecture seule. Il communique uniquement avec
https://gmail.googleapis.comet utilise la portéehttps://www.googleapis.com/auth/gmail.readonlydefault. Il ne modifie jamais la boîte aux lettres source. - Chaque connexion ingère une seule boîte aux lettres. Le connecteur marque la valeur de la boîte aux lettres en tant que colonne
mailboxsur chaque ligne. Pour ingérer plus d'une boîte aux lettres, créez une connexion et un pipeline distincts pour chaque boîte aux lettres. - Le schéma source est
default. - Les tables
messagesetmessage_labelsse synchronisent de manière incrémentielle à l’aide de l’API Gmail History. Les tablesprofile,labels,labels_details,draftsetfilterssont uniquement en full-refresh. - Les pièces jointes des messages sont contenues dans la colonne
payloadde la tablemessages(payload.parts[].body.attachmentId). Il n’existe pas de table de pièces jointes distincte.
Tables prises en charge
Le connecteur ingère les tables suivantes à partir du schéma source default.
Table | Clé primaire | Mode de synchronisation |
|---|---|---|
|
| refresh complète |
|
| refresh complète |
|
| refresh complète |
|
| refresh complète |
|
| refresh complète |
|
| Incrémentiel (Gmail History API, |
|
| Incrémentiel (Gmail History API, |
Schéma de destination
Les sections suivantes décrivent les colonnes de chaque table de destination.
profil
Colonne | Type |
|---|---|
|
|
|
|
|
|
|
|
|
|
étiquettes
Colonne | Type |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
détails_des_étiquettes
La table labels_details possède les mêmes colonnes que labels (mailbox, id, name, type, les champs de visibilité, les nombres de messages et de fils de discussion, et color). Chaque étiquette est enrichie par la réponse de l’API labels.get.
brouillons
Colonne | Type |
|---|---|
|
|
|
|
|
|
filtres
Colonne | Type |
|---|---|
|
|
|
|
|
|
|
|
messages
Colonne | Type |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
structure de la charge utile
La colonne payload matérialise l'arborescence MIME du message jusqu'à 8 niveaux d'imbrication. Chaque niveau présente la structure suivante :
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>
}
Les pièces jointes sont contenues dans payload.parts[].body.attachmentId. Les parties imbriquées à plus de 8 niveaux de profondeur ne sont pas développées en colonnes struct.
étiquettes_de_message
Colonne | Type |
|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Synchronisation incrémentielle
Les tables messages et message_labels se synchronisent de manière incrémentielle :
- La première exécution effectue une exploration initiale complète de la boîte aux lettres.
- Les exécutions ultérieures appellent
users.history.list, basées sur le curseurhistoryIdextrait de la ressourceprofile, pour récupérer uniquement les modifications depuis l'exécution précédente. - Les suppressions sont émises sous forme de « tombstones »
_row_deleted. - Si Gmail expire le
historyIdstocké (l’API History renvoie une erreur 404 car le curseur est plus ancien que la fenêtre de rétention de Gmail), le connecteur revient automatiquement à une full refresh de la table concernée.
Gmail conserve l’historique pendant une fenêtre limitée, généralement d’environ sept jours. Planifiez l'exécution du pipeline au moins une fois tous les sept jours afin que les historyId stockés restent dans cette fenêtre. Si le curseur expire, la prochaine exécution effectue un refresh complet de messages et message_labels.
Les tables messages et message_labels ne prennent pas en charge le suivi de l'historique SCD de type 2 ; la configuration du SCD de type 2 pour ces tables entraîne l'échec de la validation du pipeline.
Limitation de débit
Lorsque Gmail renvoie une réponse HTTP 403, le connecteur lit l'en-tête Retry-After (avec un délai d'attente minimal de 1 seconde) et réessaie la requête automatiquement.