Importe dados dos Logs de Acesso e Integração do Slack
Beta
Este recurso está em Beta. Os administradores do espaço de trabalho podem controlar o acesso a esse recurso na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.
Esta página mostra como criar um pipeline de ingestão gerenciado de Logs de Acesso e Integração do Slack utilizando o 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.
-
O compute serverless deve ser habilitado para seu workspace. Consulte Requisitos de computação serverless.
-
Para criar uma nova conexão, é preciso ter os privilégios
CREATE CONNECTIONno metastore. Consulte Gerenciar privilégios no Unity Catalog.Se o conector suportar a criação de pipelines baseada na IU, um administrador poderá criar a conexão e o pipeline simultaneamente, ao concluir os passos nesta página. No entanto, se os usuários que criam pipelines usam a autoria de pipeline baseada em API ou são usuários não administradores, um administrador deve primeiro criar a conexão no Catalog Explorer. Consulte Conectar-se a fontes de ingestão gerenciadas.
-
Para usar uma conexão existente: é preciso ter os privilégios
USE CONNECTIONouALL PRIVILEGESno objeto de conexão. -
Você deve ter privilégios
USE CATALOGno catálogo de destino. -
É necessário ter os privilégios
USE SCHEMAeCREATE TABLEem um esquema existente ou os privilégiosCREATE SCHEMAno catálogo de destino.
-
-
Para ingerir do Slack, é preciso primeiro configurar a autenticação do Databricks e criar uma conexão. Consulte Configurar autenticação ao Slack e Criar uma conexão com os Logs de acesso e integração do Slack.
Criar pipeline de ingestão
Para obter a lista de tabelas de origem compatíveis, consulte Tabelas de origem compatíveis.
- Declarative Automation Bundles
- Databricks notebook
Use Pacotes de Automação Declarativa para gerenciar pipelines de Slack Access e de Logs de Integração como código. Os pacotes podem conter definições YAML de Jobs e tarefas, são gerenciados usando a CLI do Databricks e podem ser compartilhados e executados em diferentes workspaces de destino (como desenvolvimento, preparo e produção). Para obter mais informações, consulte O que são Pacotes de Automação Declarativa?.
-
Crie um pacote utilizando a CLI do Databricks:
Bashdatabricks bundle init -
Adicione dois novos arquivos de recurso ao pacote:
- Um arquivo de definição de pipeline (por exemplo,
resources/slack_access_integration_logs_pipeline.yml). Veja pipeline.definição_de_ingestão e Exemplos. - Um arquivo de definição de Job que controla a frequência da ingestão de dados (por exemplo,
resources/slack_access_integration_logs_job.yml).
- Um arquivo de definição de pipeline (por exemplo,
-
Implante o pipeline usando a CLI do Databricks:
Bashdatabricks bundle deploy
- Importe o seguinte notebook em seu workspace do Databricks:
-
Deixe as células um e dois como estão. Não modifique.
-
Modificar a célula três com os detalhes da configuração do pipeline. Veja pipeline.ingestion_definition e Exemplos.
-
Configure as configurações avançadas do pipeline (opcional). Consulte Padrões comuns para pipelines de ingestão gerenciados.
-
Clique em Executar tudo .
Exemplos
O conector de logs de integração e acesso do Slack expõe duas tabelas de origem (access_logs e integration_logs) no esquema de origem default. É possível ingerir tabelas individuais ou o esquema inteiro.
Ingerir tabelas específicas
Use esta opção para ingerir um subconjunto específico de tabelas, ou para personalizar a nomenclatura de destino por tabela.
- Declarative Automation Bundles
- Databricks notebook
O arquivo de definição de pipeline a seguir ingere tabelas individuais de logs de acesso e integração do Slack.
resources:
pipelines:
slack_access_integration_logs_pipeline:
name: slack_access_integration_logs_pipeline
catalog: 'main'
target: 'slack_access_integration_logs_data'
ingestion_definition:
connection_name: slack_access_integration_logs_connection
objects:
- table:
source_schema: 'default'
source_table: 'access_logs'
destination_catalog: 'main'
destination_schema: 'slack_access_integration_logs_data'
destination_table: 'access_logs'
- table:
source_schema: 'default'
source_table: 'integration_logs'
destination_catalog: 'main'
destination_schema: 'slack_access_integration_logs_data'
destination_table: 'integration_logs'
A seguinte especificação de pipeline ingere tabelas individuais de Slack Access e Integration Logs:
pipeline_name = "slack_access_integration_logs_pipeline"
connection_name = "<slack-access-integration-logs-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "access_logs",
"destination_catalog": "main",
"destination_schema": "slack_access_integration_logs_data",
"destination_table": "access_logs"
}
},
{
"table": {
"source_schema": "default",
"source_table": "integration_logs",
"destination_catalog": "main",
"destination_schema": "slack_access_integration_logs_data",
"destination_table": "integration_logs"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir o esquema inteiro
Utilize esta opção para ingerir todas as tabelas de origem de Logs de Acesso e Integração do Slack em um único esquema de destino com uma declaração.
- Declarative Automation Bundles
- Databricks notebook
O seguinte arquivo de definição de pipeline ingere todas as tabelas de Logs de Acesso e Integração do Slack compatíveis em um esquema de destino:
resources:
pipelines:
slack_access_integration_logs_pipeline:
name: slack_access_integration_logs_pipeline
catalog: 'main'
target: 'slack_access_integration_logs_data'
ingestion_definition:
connection_name: slack_access_integration_logs_connection
objects:
- schema:
source_schema: 'default'
destination_catalog: 'main'
destination_schema: 'slack_access_integration_logs_data'
A seguinte especificação de pipeline ingere todas as tabelas com suporte de Logs de Acesso e Integração do Slack para um esquema de destino.
pipeline_name = "slack_access_integration_logs_pipeline"
connection_name = "<slack-access-integration-logs-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"schema": {
"source_schema": "default",
"destination_catalog": "main",
"destination_schema": "slack_access_integration_logs_data"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Arquivo de definição de Job de Pacotes de Automação Declarativa
- Declarative Automation Bundles
O seguinte é um exemplo de arquivo de definição de job para uso com Pacotes de Automação Declarativa. O Job é executado diariamente.
resources:
jobs:
slack_access_integration_logs_job:
name: slack_access_integration_logs_job
schedule:
quartz_cron_expression: '0 0 0 * * ?'
timezone_id: 'UTC'
tasks:
- task_key: slack_access_integration_logs_ingestion
pipeline_task:
pipeline_id: ${resources.pipelines.slack_access_integration_logs_pipeline.id}
Padrões comuns
Para configurações avançadas de pipeline, consulte Padrões comuns para pipelines de ingestão gerenciados.
Passos seguintes
Iniciar, programar e definir alertas no seu pipeline. Veja Tarefas comuns de manutenção de pipelines.