Ingerir dados do Shopify
Beta
Esse recurso está na versão Beta. Para usá-lo, o administrador do workspace deve ativar o Lakeflow Connect for Shopify na página Pré-visualizações . Consulte Gerenciar prévias do Databricks.
Esta página mostra como criar um pipeline de ingestão do Shopify gerenciado usando o Lakeflow Connect.
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 o seu workspace. Consulte Requisitos de compute serverless.
-
Para criar uma nova conexão, você deve ter privilégios
CREATE CONNECTIONno metastore. Consulte Gerenciar privilégios no Unity Catalog.Se o conector for compatível com a criação de pipelines baseada em 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 criarem pipelines usarem a criação de pipelines 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 os privilégios
USE CONNECTIONouALL PRIVILEGESno objeto de conexão. -
Você deve ter os privilégios
USE CATALOGno catálogo de destino. -
You must have
USE SCHEMAandCREATE TABLEprivileges on an existing schema orCREATE SCHEMAprivileges on the target catalog.
-
-
Para fazer a ingestão do Shopify, primeiro configure a autenticação no Databricks e crie uma conexão. Consulte Configurar a autenticação para o Shopify e Criar uma conexão com o Shopify.
Opções do conector
Defina opções com escopo de pipeline em source_configurations. Consulte Exemplos para ver o uso.
Opção | Escopo | Obrigatório | Aplica-se a | Descrição |
|---|---|---|---|---|
| Pipeline | Não | Todas as tabelas incrementais | Data e hora mais antigas a partir das quais ingerir dados, no formato |
Criar um pipeline de ingestão
Para obter a lista de tabelas de origem suportadas, consulte Tabelas de origem suportadas.
- Databricks UI
- Declarative Automation Bundles
- Databricks notebook
- Na barra lateral do workspace do Databricks, clique em Ingestão de dados .
- Na página Add data , em Databricks connectors , clique em Shopify .
- Na página Connection do assistente de ingestão, selecione a conexão que armazena suas credenciais do Shopify. Se você tiver o privilégio
CREATE CONNECTIONno metastore, clique emCreate connection para criar uma conexão com as credenciais de Configure authentication to Shopify.
- Clique em Avançar .
- Na página Ingestion setup , insira um nome para o pipeline.
- Selecione um catálogo e um esquema para gravar os Logs de eventos. If you have
USE CATALOGandCREATE SCHEMAprivileges on the catalog, clickCreate schema in the drop-down menu to create a schema.
- Clique em Criar pipeline e continuar .
- Na página Source , selecione as tabelas para ingestão.
- Clique em Salvar e continuar .
- Na página Destination , selecione um catálogo e um esquema para carregar os dados. Se você tiver os privilégios
USE CATALOGeCREATE SCHEMAno catálogo, clique emCreate schema no menu suspenso para criar um esquema.
- Clique em Salvar e continuar .
- (Opcional) Na página Cronogramas e notificações , clique em
Criar agendamento . Defina a frequência para refresh das tabelas de destino.
- (Opcional) Clique em
Adicionar notificação para configurar notificações por email de sucesso ou falha na operação do pipeline, e clique em Salvar e executar pipeline .
Use os Pacotes de Automação Declarativa para gerenciar pipelines do Shopify 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 workspaces de destino (como desenvolvimento, staging e produção). Para obter mais informações, consulte O que são os Pacotes de Automação Declarativa?.
-
Criar um pacote usando a CLI do Databricks:
Bashdatabricks bundle init -
Adicionar dois novos arquivos de recurso ao pacote:
- Um arquivo de definição de pipeline (por exemplo,
resources/shopify_pipeline.yml). Consulte pipeline.ingestion_definition e Examples. - Um arquivo de definição de job que controla a frequência da ingestão de dados (por exemplo,
resources/shopify_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 e dois como estão. Não modifique.
-
Modifique a terceira célula com os detalhes de configuração do seu pipeline. Veja pipeline.ingestion_definition e Exemplos.
-
Configure opcionalmente as configurações avançadas de pipeline. Consulte Common patterns for managed ingestion pipelines.
-
Clique em Executar tudo .
Exemplos
The Shopify connector makes available 39 source tables in the default source schema. Ingest individual tables or the entire schema.
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 seguinte arquivo de definição de pipeline ingere tabelas individuais do Shopify:
resources:
pipelines:
shopify_pipeline:
name: shopify_pipeline
catalog: 'main'
target: 'shopify_data'
ingestion_definition:
connection_name: shopify_connection
objects:
- table:
source_schema: 'default'
source_table: 'products'
destination_catalog: 'main'
destination_schema: 'shopify_data'
destination_table: 'products'
- table:
source_schema: 'default'
source_table: 'orders'
destination_catalog: 'main'
destination_schema: 'shopify_data'
destination_table: 'orders'
- table:
source_schema: 'default'
source_table: 'customers'
destination_catalog: 'main'
destination_schema: 'shopify_data'
destination_table: 'customers'
A especificação de pipeline a seguir ingere tabelas individuais do Shopify:
pipeline_name = "shopify_pipeline"
connection_name = "<shopify-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "products",
"destination_catalog": "main",
"destination_schema": "shopify_data",
"destination_table": "products"
}
},
{
"table": {
"source_schema": "default",
"source_table": "orders",
"destination_catalog": "main",
"destination_schema": "shopify_data",
"destination_table": "orders"
}
},
{
"table": {
"source_schema": "default",
"source_table": "customers",
"destination_catalog": "main",
"destination_schema": "shopify_data",
"destination_table": "customers"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir a partir de uma data de início específica
Use a opção start_datetime para controlar até onde as tabelas incrementais realizam a leitura na primeira sincronização.
- Declarative Automation Bundles
- Databricks notebook
O seguinte arquivo de definição de pipeline ingere tabelas da Shopify a partir de uma data de início específica:
resources:
pipelines:
shopify_pipeline:
name: shopify_pipeline
catalog: 'main'
target: 'shopify_data'
ingestion_definition:
connection_name: shopify_connection
source_configurations:
- api_source_connector_config:
configs:
start_datetime: '<start-datetime>'
objects:
- table:
source_schema: 'default'
source_table: 'products'
destination_catalog: 'main'
destination_schema: 'shopify_data'
destination_table: 'products'
- table:
source_schema: 'default'
source_table: 'orders'
destination_catalog: 'main'
destination_schema: 'shopify_data'
destination_table: 'orders'
A seguinte especificação de pipeline ingere tabelas do Shopify a partir de uma data de início específica:
pipeline_name = "shopify_pipeline"
connection_name = "<shopify-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"source_configurations": [
{
"api_source_connector_config": {
"configs": {
"start_datetime": "<start-datetime>"
}
}
}
],
"objects": [
{
"table": {
"source_schema": "default",
"source_table": "products",
"destination_catalog": "main",
"destination_schema": "shopify_data",
"destination_table": "products"
}
},
{
"table": {
"source_schema": "default",
"source_table": "orders",
"destination_catalog": "main",
"destination_schema": "shopify_data",
"destination_table": "orders"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Ingerir o esquema inteiro
Use esta opção para ingerir todas as tabelas de origem da Shopify 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 compatíveis do Shopify em um esquema de destino:
resources:
pipelines:
shopify_pipeline:
name: shopify_pipeline
catalog: 'main'
target: 'shopify_data'
ingestion_definition:
connection_name: shopify_connection
objects:
- schema:
source_schema: 'default'
destination_catalog: 'main'
destination_schema: 'shopify_data'
A especificação de pipeline a seguir ingere todas as tabelas do Shopify compatíveis em um esquema de destino:
pipeline_name = "shopify_pipeline"
connection_name = "<shopify-connection>"
pipeline_spec = {
"name": pipeline_name,
"ingestion_definition": {
"connection_name": connection_name,
"objects": [
{
"schema": {
"source_schema": "default",
"destination_catalog": "main",
"destination_schema": "shopify_data"
}
}
]
}
}
json_payload = json.dumps(pipeline_spec, indent=2)
create_pipeline(json_payload)
Arquivo de definição de job dos Pacotes de Automação Declarativa
O seguinte é um exemplo de arquivo de definição de job para uso com os Pacotes de Automação Declarativa. O job é executado diariamente.
- Declarative Automation Bundles
resources:
jobs:
shopify_job:
name: shopify_job
schedule:
quartz_cron_expression: '0 0 0 * * ?'
timezone_id: 'UTC'
tasks:
- task_key: shopify_ingestion
pipeline_task:
pipeline_id: ${resources.pipelines.shopify_pipeline.id}
Padrões comuns
Para configurações avançadas de pipeline, consulte Padrões comuns para pipelines de ingestão gerenciados.
Passos seguintes
Começar, programar e definir alertas no seu pipeline. Consulte Tarefas comuns de manutenção de pipeline.