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.
-
Para criar uma nova conexão, é preciso ter privilégios
CREATE CONNECTIONno metastore. Consulte 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.
-
Para 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 ingerir do Microsoft Outlook, primeiro você deve concluir os passos em Configurar a autenticação para o Microsoft Outlook e criar uma conexão usando Criar uma conexão do 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 que as distingue. Para detalhes sobre o esquema de destino, consulte Esquema de destino.
- 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 de email (todas as pastas)
Este exemplo ingere mensagens de email de todas as pastas de todas as caixas de correio acessíveis no tenant. Como include_folders não está definido, todas as pastas em cada caixa de correio são ingeridas, incluindo todas as subpastas aninhadas.
- 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.