Ingerir dados agregados do Google analítica
Beta
Esse recurso está em Beta. Para usá-lo, um administrador de Workspace deve ativar o Lakeflow Connect para Google analítica Aggregated na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.
Crie um pipeline gerenciado do Lakeflow Connect que ingere dados de relatórios agregados do Google Analítica 4 (GA4) em tabelas do Unity Catalog. Use Pacotes de Automação Declarativa ou um notebook Databricks.
Requisitos
-
Para criar um pipeline de ingestão, primeiro atenda aos seguintes requisitos:
-
Seu workspace deve estar habilitado para o Unity Catalog.
-
O compute serverless deve estar habilitado para seu workspace. Consulte Requisitos de compute serverless.
-
Para criar uma nova conexão, é preciso ter privilégios
CREATE CONNECTIONno metastore. Consulte Gerenciar privilégios no Unity Catalog.Se o conector oferecer suporte à criação de pipeline baseada na interface do usuário, um administrador poderá criar a conexão e o pipeline ao mesmo tempo, concluindo os passos desta página. No entanto, se os usuários que criam pipelines usarem a criação de pipeline baseada em API ou forem usuários não administradores, um administrador deverá primeiro criar a conexão no Catalog Explorer. Consulte Conectar-se a fontes de ingestão gerenciadas.
-
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 ingestão do Google analítica, configure primeiro a autenticação do Databricks e crie uma conexão. Consulte Configurar autenticação para o Google analítica e Criar uma conexão agregada do Google analítica.
Opções de conector
Para obter as opções que o conector do Google Analytics Aggregated aceita, seu escopo e as tabelas às quais eles se aplicam, consulte Opções do conector. Defina opções no escopo do pipeline em source_configurations e opções no escopo da tabela no objeto individual. Consulte Exemplos para obter informações sobre o uso.
Criar um pipeline de ingestão
Para obter a lista de tabelas de origem suportadas, consulte Tabelas de origem suportadas.
- Declarative Automation Bundles
- Databricks notebook
Use os Pacotes de Automação Declarativa para gerenciar pipelines do Google analítica Aggregated 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 ter execução em diferentes Workspace de destino (como desenvolvimento, staging e produção). Consulte O que são os 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/google_analytics_aggregated_pipeline.yml). Veja pipeline.ingestion_definition e Exemplos. - Um arquivo de definição de job que controla a frequência de ingestão de dados (por exemplo,
resources/google_analytics_aggregated_job.yml).
- Um arquivo de definição de pipeline (por exemplo,
-
Implantar o pipeline usando a CLI do Databricks:
Bashdatabricks bundle deploy
- Importe o seguinte notebook para o seu workspace do Databricks:
-
Deixe as células um, dois e três como estão.
-
Modifique a célula quatro com os detalhes de configuração do seu pipeline. Veja pipeline.ingestion_definition e Exemplos.
-
Opcionalmente, configure as configurações avançadas do pipeline. Consulte Padrões comuns para pipelines de ingestão gerenciados.
-
Clique em Executar tudo .
Exemplos
O conector do Google analítica Aggregated disponibiliza suas tabelas de origem no esquema de origem default. Para obter a lista de tabelas, consulte Tabelas de origem suportadas.
Para obter detalhes sobre o esquema, consulte Esquemas da tabela de destino.
Ingerir uma tabela de relatório pré-construída
O exemplo a seguir ingere a tabela traffic_acquisition_session_source_medium_report para duas propriedades do GA4.
- Declarative Automation Bundles
- Databricks notebook
resources:
pipelines:
google_analytics_aggregated_pipeline:
name: google_analytics_aggregated_pipeline
catalog: 'main'
target: 'google_analytics_aggregated_data'
ingestion_definition:
connection_name: google_analytics_aggregated_connection
source_configurations:
- api_source_connector_config:
configs:
start_date: '<start-date>'
objects:
- table:
source_schema: 'default'
source_table: 'traffic_acquisition_session_source_medium_report'
destination_catalog: 'main'
destination_schema: 'google_analytics_aggregated_data'
destination_table: 'traffic_acquisition_session_source_medium_report'
connector_options:
api_source_connector_options:
options:
property_ids: '["<property-id-1>", "<property-id-2>"]'
lookback_window_in_days: '<lookback-days>'
pipeline_spec = {
"name": "<pipeline-name>",
"catalog": "<catalog-name-for-event-logs>",
"schema": "<schema-name-for-event-logs>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"source_configurations": [
{
"api_source_connector_config": {
"configs": {
"start_date": "<start-date>"
}
}
}
],
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "traffic_acquisition_session_source_medium_report",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"destination_table": "traffic_acquisition_session_source_medium_report",
"connector_options": {
"api_source_connector_options": {
"options": {
"property_ids": "[\"<property-id-1>\", \"<property-id-2>\"]",
"lookback_window_in_days": "<lookback-days>"
}
}
}
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir um relatório personalizado
O exemplo a seguir ingere um relatório personalizado que agrega sessões e usuários por país e categoria de dispositivo para cada semana do GA4. Para ingerir mais de um relatório personalizado no mesmo pipeline, adicione um objeto custom_report para cada relatório, cada um com um destination_table diferente. Para obter as opções, consulte Relatórios personalizados.
- Declarative Automation Bundles
- Databricks notebook
resources:
pipelines:
google_analytics_aggregated_pipeline:
name: google_analytics_aggregated_pipeline
catalog: 'main'
target: 'google_analytics_aggregated_data'
ingestion_definition:
connection_name: google_analytics_aggregated_connection
source_configurations:
- api_source_connector_config:
configs:
start_date: '<start-date>'
objects:
- table:
source_schema: 'default'
source_table: 'custom_report'
destination_catalog: 'main'
destination_schema: 'google_analytics_aggregated_data'
destination_table: 'weekly_sessions_by_country_and_device'
connector_options:
api_source_connector_options:
options:
property_id: '<property-id>'
dimensions: '["country", "deviceCategory"]'
metrics: '["sessions", "totalUsers"]'
cursor_dimension: 'yearWeek'
pipeline_spec = {
"name": "<pipeline-name>",
"catalog": "<catalog-name-for-event-logs>",
"schema": "<schema-name-for-event-logs>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"source_configurations": [
{
"api_source_connector_config": {
"configs": {
"start_date": "<start-date>"
}
}
}
],
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "custom_report",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"destination_table": "weekly_sessions_by_country_and_device",
"connector_options": {
"api_source_connector_options": {
"options": {
"property_id": "<property-id>",
"dimensions": "[\"country\", \"deviceCategory\"]",
"metrics": "[\"sessions\", \"totalUsers\"]",
"cursor_dimension": "yearWeek"
}
}
}
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir tabelas de relatório pré-construídas e personalizadas juntas
O exemplo a seguir combina uma tabela de relatório pré-construída e um relatório personalizado mensal em um único pipeline. Cada objeto define apenas as opções de conector que sua tabela aceita.
- Declarative Automation Bundles
- Databricks notebook
resources:
pipelines:
google_analytics_aggregated_pipeline:
name: google_analytics_aggregated_pipeline
catalog: 'main'
target: 'google_analytics_aggregated_data'
ingestion_definition:
connection_name: google_analytics_aggregated_connection
source_configurations:
- api_source_connector_config:
configs:
start_date: '<start-date>'
objects:
- table:
source_schema: 'default'
source_table: 'website_overview'
destination_catalog: 'main'
destination_schema: 'google_analytics_aggregated_data'
destination_table: 'website_overview'
connector_options:
api_source_connector_options:
options:
property_ids: '["<property-id>"]'
- table:
source_schema: 'default'
source_table: 'custom_report'
destination_catalog: 'main'
destination_schema: 'google_analytics_aggregated_data'
destination_table: 'monthly_revenue_by_channel'
connector_options:
api_source_connector_options:
options:
property_id: '<property-id>'
dimensions: '["sessionDefaultChannelGroup"]'
metrics: '["totalRevenue", "transactions"]'
cursor_dimension: 'yearMonth'
pipeline_spec = {
"name": "<pipeline-name>",
"catalog": "<catalog-name-for-event-logs>",
"schema": "<schema-name-for-event-logs>",
"ingestion_definition": {
"connection_name": "<connection-name>",
"source_configurations": [
{
"api_source_connector_config": {
"configs": {
"start_date": "<start-date>"
}
}
}
],
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "website_overview",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"destination_table": "website_overview",
"connector_options": {
"api_source_connector_options": {
"options": {
"property_ids": "[\"<property-id>\"]"
}
}
}
}
},
{
"table": {
"source_schema": "default",
"source_table": "custom_report",
"destination_catalog": "<destination-catalog>",
"destination_schema": "<destination-schema>",
"destination_table": "monthly_revenue_by_channel",
"connector_options": {
"api_source_connector_options": {
"options": {
"property_id": "<property-id>",
"dimensions": "[\"sessionDefaultChannelGroup\"]",
"metrics": "[\"totalRevenue\", \"transactions\"]",
"cursor_dimension": "yearMonth"
}
}
}
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Arquivo de definição de job de Pacotes de Automação Declarativa
O exemplo a seguir é um arquivo de definição de job para uso com os Pacotes de Automação Declarativa. O Job é execução diariamente.
- Declarative Automation Bundles
resources:
jobs:
google_analytics_aggregated_job:
name: google_analytics_aggregated_job
schedule:
quartz_cron_expression: '0 0 0 * * ?'
timezone_id: 'UTC'
tasks:
- task_key: google_analytics_aggregated_ingestion
pipeline_task:
pipeline_id: ${resources.pipelines.google_analytics_aggregated_pipeline.id}
Padrões comuns
Para configurações avançadas de pipeline, consulte Padrões comuns para pipelines de ingestão gerenciados.
Os passos seguintes
Comece, programe e configure alertas em seu pipeline. Consulte Tarefas comuns de manutenção de pipeline.