Trabalhamos constantemente com o Google BigQuery - importamos dados de usuários, seus pedidos e custos de publicidade de diferentes fontes para poder combiná-los entre si. O que isso nos dá? Por exemplo, se você tem uma loja on-line e um cliente faz um pedido por telefone e, em seguida, efetua login no site, usando o Google BigQuery, é possível vincular todas as suas ações retroativamente. Você pode acompanhar todo o caminho do cliente através do funil de marketing - desde a primeira visita ao site até a compra em uma loja física e avaliar campanhas de publicidade levando em consideração essas vendas off-line.
Nesta coleção, temos 6 scripts python para automatizar a importação de dados no
Google BigQuery usando as
funções do Google Cloud : FTP; FTPS HTTP (s); Intercomunicador MySQL e SFTP. O princípio de operação é o mesmo: usando a solicitação HTTP POST, a função Cloud é chamada, que recebe dados da origem e os carrega na tabela do Google BigQuery. Se a tabela já existir no conjunto de dados selecionado, ela será substituída.
Requisitos básicos
- Projeto no Google Cloud Platform com faturamento ativado.
- Acesso para editar (a função “Editor” dos dados do BigQuery) e concluir tarefas (a função das tarefas Usuário do BigQuery) para a conta de serviço da função Nuvem no projeto BigQuery para o qual a tabela será carregada;
- Um cliente HTTP para executar solicitações POST que chamam a função Cloud.
Etapas de instalação
- Acesse o Google Cloud Platform Console e faça login usando sua conta do Google ou registre-se se ainda não tiver uma conta.
- Vá para o projeto com cobrança ativada ou crie uma nova conta de cobrança para o projeto.
- Vá para a seção Cloud Functions e clique em Create Feature. Observe que as taxas de nuvem se aplicam .
- Preencha os seguintes campos:
Nome: por exemplo, ftp-bq-integration ou qualquer outro nome adequado;
Memória alocada: 2 GB ou menos, dependendo do tamanho do arquivo processado;
Gatilho: HTTP;
Código fonte: Editor embutido;
Ambiente de tempo de execução: Python 3.X.
- Copie o conteúdo do arquivo main.py no editor interno, guia main.py.
- Copie o conteúdo do arquivo requirements.txt no editor interno, na guia requirements.txt.
- Especifique ftp / ftps / https e assim por diante, como a função que está sendo chamada, dependendo do módulo que você está usando.
- Nos parâmetros adicionais, aumente o tempo de espera de 60 segundos. até 540 seg. ou menor, dependendo do tamanho do arquivo que está sendo processado.
- Termine de criar a função Nuvem clicando no botão "Criar".
Este módulo foi projetado para transferir arquivos de servidores FTP (FTPS, SFTP) no Google BigQuery usando a função Google Cloud. A solução permite fazer o upload automático de dados para o Google BigQuery a partir de um arquivo que é atualizado regularmente no servidor FTP.
O arquivo a ser obtido no servidor apropriado pode ter qualquer extensão adequada (.json, .txt, .csv), mas deve estar em um dos seguintes formatos: JSON (delimitado por nova linha) ou valores separados por vírgula (CSV).
Exemplo de uso
from urllib import urlencode from httplib2 import Http trigger_url = "https://REGION-PROJECT_ID.cloudfunctions.net/ftp/" headers = { "Content-Type": "application/json" } payload = { "ftp": { "user": "ftp.user_name", "psswd": "ftp.password", "path_to_file": "ftp://server_host/path/to/file/" }, "bq": { "project_id": "my_bq_project", "dataset_id": "my_bq_dataset", "table_id": "my_bq_table", "delimiter": ",", "source_format": "NEWLINE_DELIMITED_JSON", "location": "US" } } Http().request(trigger_url, "POST", urlencode(payload), headers = headers)
Módulo para transferir arquivos dos servidores HTTPS para o Google BigQuery.
Exemplo de uso
from urllib import urlencode from httplib2 import Http trigger_url = "https://REGION-PROJECT_ID.cloudfunctions.net/https/" headers = { "Content-Type": "application/json" } payload = { "https": { "path_to_file": "https://server_host/path/to/file/", "user": "https.user_name", "psswd": "https.password" }, "bq": { "project_id": "my_bq_project", "dataset_id": "my_bq_dataset", "table_id": "my_bq_table", "delimiter": ",", "source_format": "CSV", "location": "US" } } Http().request(trigger_url, "POST", urlencode(payload), headers = headers)
Um módulo para automatizar a transferência de dados do Intercom para o Google BigQuery usando o recurso Google Cloud. Atualmente, o módulo permite importar da Intercom entidades como: usuários, empresas, contatos, administradores, conversas, equipes, tags, segmentos. No entanto, o módulo não suporta atributos customizados.
Exemplo de uso
from urllib import urlencode from httplib2 import Http trigger_url = "https://REGION-PROJECT_ID.cloudfunctions.net/intercom/" headers = { "Content-Type": "application/json" } payload = { "intercom": { "accessToken": "INTERCOM ACCESS TOKEN", "entities": [ "users", "companies", "contacts", "admins", "conversations", "teams", "tags", "segments" ] }, "bq": { "project_id": "YOUR GCP PROJECT", "dataset_id": "YOUR DATASET NAME", "location": "US" } } Http().request(trigger_url, "POST", urlencode(payload), headers = headers)
Usado para transferir arquivos dos servidores MySQL para o Google BigQuery usando a função Google Cloud. Esta solução permite fazer o upload automático de dados para o Google BigQuery a partir de tabelas que são atualizadas regularmente no servidor MySQL.
Exemplo de uso
from urllib import urlencode from httplib2 import Http trigger_url = "https://REGION-PROJECT_ID.cloudfunctions.net/mysql/" headers = { "Content-Type": "application/json" } payload = { "mysql": { "user": "mysql.user", "psswd": "mysql.password", "host": "host_name", "port”: 3306, "database": "database_name", "table_id": "table_name", "query": "SELECT * FROM table_name" }, "bq": { "project_id": "my_bq_projec", "dataset_id": "my_bq_dataset", "table_id": "my_bq_table" } } Http().request(trigger_url, "POST", urlencode(payload), headers = headers)
Uma documentação mais detalhada para cada módulo pode ser encontrada nos arquivos leia-me em cada seção.
Isso é apenas o começo, e agora estamos trabalhando em scripts para Bitrix e amoCRM, porque vemos que eles são os mais populares entre nossos clientes. Compartilhe quais métodos você usa para combinar dados e quais integrações faltam para isso.