Importar dados do Microsoft Outlook
Beta
Este recurso está em versão Beta. Os administradores do espaço de trabalho podem controlar o acesso a este recurso na página de Pré-visualizações . Veja as prévias do Gerenciador Databricks.
Esta página mostra como criar um pipeline de ingestão do Outlook gerenciado usando Databricks LakeFlow Connect.
Requisitos
-
Para criar um pipeline de ingestão, você deve primeiro atender aos seguintes requisitos:
-
Seu workspace deve estar habilitado para o Unity Catalog.
-
compute sem servidor (serverless compute) deve estar habilitado para seu workspace. Consulte os requisitos compute sem servidor.
-
Se você planeja criar uma nova conexão: Você deve ter privilégios
CREATE CONNECTIONno metastore. Consulte a seção "Gerenciar privilégios" no Unity Catalog.Se o conector suportar a criação pipeline baseada em interface de usuário, um administrador poderá criar a conexão e o pipeline simultaneamente, concluindo os passos desta página. No entanto, se os usuários que criam pipelines utilizarem a criação pipeline baseada em API ou não forem administradores, um administrador deverá primeiro criar a conexão no Catalog Explorer. Consulte Conectar para gerenciar fontes de ingestão.
-
Se você planeja usar uma conexão existente: Você deve ter privilégios
USE CONNECTIONouALL PRIVILEGESno objeto de conexão. -
Você deve ter privilégios
USE CATALOGno catálogo de destino. -
Você deve ter privilégios
USE SCHEMAeCREATE TABLEem um esquema existente ou privilégiosCREATE SCHEMAno catálogo de destino.
-
-
Para importar dados do Microsoft Outlook, primeiro você deve concluir as etapas descritas em Configurar a autenticação no Microsoft Outlook e criar uma conexão usando o Outlook.
Crie um pipeline de ingestão.
O conector suporta uma única tabela, email_messages, no esquema default . Todas as caixas de correio são mescladas nesta tabela com uma coluna mailbox distinguindo-as. Para obter detalhes sobre o esquema de destino, consulte Dados suportados.
- Databricks UI
- Declarative Automation Bundles
- Databricks notebook
- Na barra lateral do workspace do Databricks , clique em ingestão de dados .
- Na página Adicionar dados , em Conectores do Databricks , clique em Outlook .
- Na página Conexão do assistente de ingestão, selecione a conexão que armazena suas credenciais de acesso ao Microsoft Outlook. Se você tiver o privilégio
CREATE CONNECTIONno metastore, poderá clicar.Criar conexão para criar uma nova conexão com os detalhes de autenticação em Configurar autenticação para o Microsoft Outlook.
- Clique em Avançar .
- Na página de configuração de ingestão , insira um nome exclusivo para o pipeline.
- Selecione um catálogo e um esquema para gravar logs de eventos. Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, poderá clicar.Para criar um novo esquema, clique em "Criar esquema" no menu suspenso.
- Clique em Criar pipeline e continue .
- Na página Origem , selecione o esquema
defaultpara ingerir a tabelaemail_messages. - Clique em Salvar e continuar .
- Na página Destino , selecione um catálogo e um esquema para carregar os dados. Se você tiver privilégios
USE CATALOGeCREATE SCHEMAno catálogo, poderá clicar.Para criar um novo esquema, clique em "Criar esquema" no menu suspenso.
- Clique em Salvar e continuar .
- (Opcional) Na página de programação e notificações , clique em
Criar programar . Defina a frequência de refresh das tabelas de destino.
- (Opcional) Clique
Adicione uma notificação para configurar notificações email para operações pipeline bem-sucedidas ou com falha e, em seguida, clique em Salvar e execute pipeline .
Utilize pacotes de automação declarativa para gerenciar o pipeline do Outlook como código. Os pacotes podem conter definições YAML de Job e tarefa, são gerenciados usando a CLI Databricks e podem ser compartilhados e executados em diferentes espaços de trabalho de destino (como desenvolvimento, teste e produção). Para mais informações, consulte O que são pacotes de automação declarativa?.
-
Crie um pacote usando a CLI do Databricks:
Bashdatabricks bundle init -
Adicione dois novos arquivos de recursos ao pacote:
- Um arquivo de definição de pipeline (por exemplo,
resources/outlook_pipeline.yml). Consulte pipeline.ingestion_definition e exemplos. - Um arquivo de definição de trabalho que controla a frequência de ingestão de dados (por exemplo,
resources/outlook_job.yml).
- Um arquivo de definição de pipeline (por exemplo,
-
Implante o pipeline usando a CLI Databricks :
Bashdatabricks bundle deploy
- Importe o seguinte Notebook para o seu workspace Databricks :
-
Deixe a célula um como está.
-
Modifique a célula três com os detalhes da configuração do seu pipeline. Consulte pipeline.ingestion_definition e exemplos.
-
Clique em Executar tudo .
Exemplos
Utilize esses exemplos para configurar seu pipeline. Consulte as opções do conector para obter a lista completa de outlook_options disponíveis.
Ingerir todas as mensagens email (pasta Caixa de Entrada default )
Este exemplo ingere mensagens email da pasta Caixa de Entrada de todas as caixas de correio acessíveis no tenant.
- Declarative Automation Bundles
- Databricks notebook
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
resources:
pipelines:
pipeline_outlook:
name: outlook_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <outlook-connection>
objects:
- schema:
source_schema: default
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
connector_options:
outlook_options:
start_date: '2024-01-01'
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<outlook-connection>",
"objects": [
{
"schema": {
"source_schema": "default",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema",
"connector_options": {
"outlook_options": {
"start_date": "2024-01-01"
}
}
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
Ingestão de dados de caixas de correio específicas com filtros
Este exemplo importa mensagens email de caixas de correio específicas, filtradas por pasta, remetente e assunto.
- Declarative Automation Bundles
- Databricks notebook
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
resources:
pipelines:
pipeline_outlook:
name: outlook_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <outlook-connection>
objects:
- schema:
source_schema: default
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
connector_options:
outlook_options:
include_mailboxes:
- user1@contoso.com
- user2@contoso.com
include_folders:
- Inbox
- Sent Items
include_senders:
- alerts@vendor.com
- noreply@system.io
include_subjects:
- SubjectExactMatch
- SubjectPrefixMatch*
start_date: '2024-01-01'
body_format: TEXT_PLAIN
attachment_mode: NON_INLINE_ONLY
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<outlook-connection>",
"objects": [
{
"schema": {
"source_schema": "default",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema",
"connector_options": {
"outlook_options": {
"include_mailboxes": ["user1@contoso.com", "user2@contoso.com"],
"include_folders": ["Inbox", "Sent Items"],
"include_senders": ["alerts@vendor.com", "noreply@system.io"],
"include_subjects": ["SubjectExactMatch", "SubjectPrefixMatch*"],
"start_date": "2024-01-01",
"body_format": "TEXT_PLAIN",
"attachment_mode": "NON_INLINE_ONLY"
}
}
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
Ingerir explicitamente a tabela email_messages
Este exemplo seleciona a tabela email_messages diretamente em vez de direcionar o esquema.
- Declarative Automation Bundles
- Databricks notebook
variables:
dest_catalog:
default: main
dest_schema:
default: ingest_destination_schema
resources:
pipelines:
pipeline_outlook:
name: outlook_pipeline
catalog: ${var.dest_catalog}
schema: ${var.dest_schema}
ingestion_definition:
connection_name: <outlook-connection>
objects:
- table:
source_schema: default
source_table: email_messages
destination_catalog: ${var.dest_catalog}
destination_schema: ${var.dest_schema}
destination_table: my_email_messages
connector_options:
outlook_options:
start_date: '2024-01-01'
pipeline_spec = """
{
"name": "<pipeline-name>",
"ingestion_definition": {
"connection_name": "<outlook-connection>",
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "email_messages",
"destination_catalog": "main",
"destination_schema": "ingest_destination_schema",
"destination_table": "my_email_messages",
"connector_options": {
"outlook_options": {
"start_date": "2024-01-01"
}
}
}
}
]
},
"channel": "PREVIEW"
}
"""
create_pipeline(pipeline_spec)
Arquivo de definição de trabalho de pacote
Segue abaixo um exemplo de arquivo de definição de tarefa para uso com pacotes de automação declarativa. A execução do trabalho ocorre todos os dias, exatamente um dia após a última execução.
resources:
jobs:
outlook_dab_job:
name: outlook_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_outlook.id}
Padrões comuns
Para configurações avançadas pipeline , consulte Padrões comuns para gerenciar pipeline de ingestão.
Próximos passos
começar, programar e definir alerta em seu pipeline. Consulte Tarefa comum de manutenção pipeline.