Carregar dados da Shopify no BigQuery

É possível carregar dados da Shopify para o BigQuery usando o conector do serviço de transferência de dados do BigQuery para a Shopify. Com o serviço de transferência de dados do BigQuery, é possível programar jobs de transferência recorrentes que adicionam os dados mais recentes do Shopify ao BigQuery.

O conector da Shopify é compatível com a transferência de dados de recursos baseados em GraphQL, como Collections e Orders, dos seguintes recursos:

  • Contas com base em assinaturas
  • Contas de parceiros

Limitações

As transferências de dados da Shopify estão sujeitas às seguintes limitações:

  • Para incluir o objeto GiftCards na transferência de dados, a conta associada a essa transferência precisa ter uma assinatura do ShopifyPlus.
  • Para incluir os seguintes objetos de dados de assinatura de app na transferência de dados, o app instalado na loja da Shopify precisa ser um app de canal de vendas.
    • AppSubscriptionLineItems
    • AppSubscriptions
    • ProductResourceFeedbacks
  • Para incluir os seguintes objetos de dados da Shopify que exigem uma função de desconto, use a CLI da Shopify para criar um app da Shopify.
    • DiscountsCodeApp
    • DiscountsCodeBasic

Antes de começar

As seções a seguir descrevem os pré-requisitos que você precisa cumprir antes de criar uma transferência de dados da Shopify.

Pré-requisitos da Shopify

  • Você precisa ter uma conta e uma loja da Shopify.
  • Você precisa ter um app personalizado da Shopify para sua loja da Shopify. Para mais informações, consulte Apps personalizados.
  • Você precisa ter acesso ao escopo necessário para o objeto de dados da Shopify que quer transferir para o BigQuery. Para uma lista de escopos necessários para cada objeto, consulte Objetos compatíveis e escopos necessários.

Pré-requisitos do BigQuery

Papéis obrigatórios do BigQuery

Para receber as permissões necessárias para criar uma transferência de dados do serviço de transferência de dados do BigQuery, peça ao administrador para conceder a você o papel do IAM de Administrador do BigQuery (roles/bigquery.admin) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém as permissões necessárias para criar uma transferência de dados do serviço de transferência de dados do BigQuery. Para acessar as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As permissões a seguir são necessárias para criar uma transferência de dados do serviço de transferência de dados do BigQuery:

  • Permissões do serviço de transferência de dados do BigQuery:
    • bigquery.transfers.update
    • bigquery.transfers.get
  • Permissões do BigQuery:
    • bigquery.datasets.get
    • bigquery.datasets.getIamPolicy
    • bigquery.datasets.update
    • bigquery.datasets.setIamPolicy
    • bigquery.jobs.create

Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.

Para mais informações, consulte Conceder acesso ao bigquery.admin.

Se quiser configurar notificações de execução de transferência do Pub/Sub, verifique se você tem a permissão pubsub.topics.setIamPolicy do Identity and Access Management (IAM). As permissões do Pub/Sub não serão necessárias caso você configure apenas notificações por e-mail. Para saber mais informações, consulte Notificações de execução do serviço de transferência de dados do BigQuery.

Configurar uma transferência de dados da Shopify

Adicione dados do Shopify ao BigQuery definindo uma configuração de transferência usando uma das seguintes opções:

Console

  1. Acesse a página "Transferências de dados" no console do Google Cloud .

    Acesse Transferências de dados

  2. Clique em Criar transferência.

  3. Na seção Tipo de origem, em Origem, escolha Shopify.

  4. Na seção Detalhes da fonte de dados, faça o seguinte:

    • Em Nome da loja, insira o nome da sua loja da Shopify. Por exemplo, se o ID da sua conta de comerciante for storename.myshopify.com, o nome da sua loja será storename.
    • Em ID do cliente e Chave secreta do cliente, insira o ID e a chave secreta do cliente do app da Shopify. Para mais informações, consulte Sobre as chaves secretas do cliente.
    • Em Objetos da Shopify para transferência, clique em Procurar:
      • Selecione os objetos a serem transferidos para o conjunto de dados de destino do BigQuery. Nesse campo, também é possível inserir manualmente qualquer objeto para incluir na transferência de dados.
  5. No campo Conjunto de dados da seção Configurações de destino, escolha o conjunto criado para armazenar seus dados.

  6. No campo Nome de exibição da seção Nome de configuração da transferência, insira um nome para a transferência de dados.

  7. Na seção Opções de programação, faça o seguinte:

    • Na lista Frequência de repetição, selecione uma opção para especificar com que frequência essa transferência de dados é executada. Para especificar uma frequência de repetição personalizada, selecione Personalizada. Se você selecionar Sob demanda, essa transferência será executada quando você acionar manualmente a transferência.
    • Se aplicável, selecione Começar agora ou Começar no horário definido e escolha uma data de início e hora de execução.
  8. Opcional: na seção Opções de notificação, faça o seguinte:

    • Para ativar as notificações por e-mail, clique no botão que ativa as Notificações por e-mail. Quando essa opção está ativada, o administrador da transferência recebe uma notificação por e-mail quando uma execução da transferência falha.
    • Para ativar as notificações de execução de transferência do Pub/Sub para essa transferência, clique no botão de alternância Notificações do Pub/Sub. Selecione o nome do tópico ou clique em Criar tópico.
  9. Clique em Salvar.

bq

Insira o comando bq mk e forneça a sinalização de execução da transferência --transfer_config:

bq mk
    --transfer_config
    --project_id=PROJECT_ID
    --data_source=DATA_SOURCE
    --display_name=NAME
    --target_dataset=DATASET
    --params='PARAMETERS'

Em que:

  • PROJECT_ID (opcional): o ID do projeto do Google Cloud . Se --project_id não for fornecido para especificar um projeto determinado, o projeto padrão será usado.
  • DATA_SOURCE: a fonte de dados — shopify.
  • NAME: o nome de exibição da configuração da transferência de dados. O nome da transferência pode ser qualquer valor que permita identificá-la, caso você precise modificá-la mais tarde.
  • DATASET: o conjunto de dados de destino na configuração de transferência.
  • PARAMETERS é o parâmetro da configuração de transferência criada no formato JSON. Por exemplo, --params='{"param":"param_value"}'. Confira a seguir os parâmetros de uma transferência de dados da Shopify:

    • assets: o caminho para os objetos do Shopify a serem transferidos para o BigQuery.
    • connector.shopName: o nome da sua loja da Shopify. Por exemplo, se o ID da sua conta do comerciante for storename.myshopify.com, o nome da sua loja será storename.
    • connector.authentication.accessToken: o token de acesso da API Admin da Shopify.

O comando a seguir cria uma transferência de dados incremental da Shopify no projeto padrão.

bq mk
    --transfer_config
    --target_dataset=mydataset
    --data_source=shopify
    --display_name='My Transfer'
    --params='{"assets": ["Orders"]
        "connector.shopName": "storename",
        "connector.authentication.accessToken":"sk_test_123456789"}'
Quando você salva a configuração de transferência, o conector da Shopify aciona automaticamente uma execução de transferência de acordo com sua opção de programação. A cada execução de transferência, o conector da Shopify transfere todos os dados disponíveis da Shopify para o BigQuery.

Para executar manualmente uma transferência de dados fora da programação regular, inicie uma execução de preenchimento.

Objetos compatíveis e escopos necessários

A tabela a seguir lista os objetos de dados da Shopify que podem ser transferidos para o BigQuery e os escopos necessários para cada objeto.

Objeto de dados Escopo obrigatório
AppFeedbacks Nenhum escopo necessário
AppSubscriptionLineItems Nenhum escopo necessário
AppSubscriptions Nenhum escopo necessário
Catálogos read_products ou read_product_listings
read_publications
Coleções read_products
read_publications
Empresas read_customers ou read_companies
CompanyContactRoleAssignments read_customers ou read_companies
CompanyContacts read_customers ou read_companies
CompanyLocations read_customers ou read_companies
Clientes read_customers
write_customers
read_customer_merge
read_locations ou read_inventory
read_markets
read_orders
DeliveryProfiles read_products
read_shipping
DiscountsAutomaticApp read_discounts
DiscountsAutomaticBasic read_discounts
DiscountsAutomaticBxgy read_discounts
DiscountsCodeApp read_discounts
DiscountsCodeBasic read_discounts
DiscountsCodeBxgy read_discounts
DraftOrders read_customers
read_draft_orders
read_orders
read_payment_terms
Arquivos read_files
FulfillmentEvents read_orders
FulfillmentOrders read_locations
read_orders
read_assigned_fulfillment_orders, read_merchant_managed_fulfillment_orders ou read_third_party_fulfillment_orders
Atendimentos read_fulfillments ou read_products
read_locations
read_orders
FulfillmentServices read_locations ou read_inventory
read_fulfillments, read_products, read_custom_fulfillment_services ou assigned_fulfillment_orders
FulfillmentTrackingInfo read_fulfillments ou read_products
read_locations
read_orders
GiftCards read_gift_cards
read_orders
read_customers
InventoryItems read_inventory
read_products
Locais read_locations
read_fulfillments
Metafields_Article read_content
Metafields_Blog read_content
Metafields_Collection read_products
read_publications
Metafields_Customer read_customers
write_customers
read_customer_merge
read_locations ou read_inventory
read_markets
read_orders
Metafields_Draft_Order read_customers
read_draft_orders
read_orders
read_payment_terms
Metafields_Order read_customers
read_inventory
read_locations
read_orders
read_payment_terms
Metafields_Page read_content
Metafields_Product read_products
read_product_listings
read_publications
Metafields_Selling_Plan read_products
Metafields_Shop Nenhum escopo necessário
Metafields_Variant read_products
read_shipping
OrderLineItems read_orders
read_products
OrderRiskAssessments read_orders
Pedidos read_customers
read_inventory
read_locations
read_orders
read_payment_terms
read_draft_orders
read_products ou read_fulfillments
OrderTransactions read_orders
read_products
PriceLists read_products
ProductMediaImages read_products
ProductOptions read_products
ProductOptionValues read_products
ProductResourceFeedbacks read_resource_feedbacks
read_products
Produtos read_products
read_product_listings
read_publications
ProductVariants read_products
read_shipping
Publicações read_products
read_publications
Reembolsos read_products
read_orders
read_returns
Retorna read_orders
read_returns
ScriptTags read_script_tags
segmentos read_customers
SellingPlanGroups read_products
StorefrontAccessTokens Nenhum escopo necessário
UrlRedirects read_online_store_navigation

Mapeamento de tipo de dados

A tabela a seguir mapeia os tipos de dados da Shopify para os tipos de dados correspondentes do BigQuery:

Tipo de dados da Shopify Tipo de dados do BigQuery
String STRING
Int INT64
Decimal NUMERIC
Double FLOAT64
Long BIGNUMERIC
Bool BOOL
Datetime TIMESTAMP

Preços

Não há custo para transferir dados da Shopify para o BigQuery enquanto esse recurso está em Pré-lançamento.

Resolver problemas na configuração da transferência

Se você tiver problemas para configurar a transferência de dados, consulte Problemas de transferência da Shopify.

A seguir