Автоматизируйте Импорт Данных В Google Bigquery С Помощью Функций Google Cloud.

Мы постоянно работаем с Google BigQuery — импортируем данные о пользователях, их заказах и расходах на рекламу из разных источников, чтобы иметь возможность объединить их между собой.

Что это нам дает? Например, если у вас интернет-магазин и клиент делает заказ по телефону, а затем авторизуется на сайте, то с помощью Google BigQuery вы можете связать все его действия задним числом.

Вы можете отслеживать весь путь клиента по маркетинговой воронке – от первого посещения сайта до покупки в обычном магазине, и оценивать рекламные кампании с учетом таких офлайн-продаж.

В этой коллекции у нас есть 6 скриптов Python для автоматизации импорта данных в Google BigQuery используя Возможности Google Cloud : FTP; ФЦПС; HTTP(s); Внутренняя связь; MySQL и SFTP. Принцип работы тот же: с помощью HTTP POST-запроса вызывается функция Cloud, которая получает данные из источника и загружает их в таблицу Google BigQuery. Если таблица уже существует в выбранном наборе данных, она будет перезаписана.



Основные требования

  1. Проект на Google Cloud Platform с активированным биллингом.

  2. Доступ к редактированию (роль «Редактор» данных BigQuery) и выполнению задач (роль BigQuery Task User) для учетной записи сервиса функции Cloud в проекте BigQuery, куда будет загружена таблица;
  3. HTTP-клиент для выполнения POST-запросов, вызывающих функцию Cloud.


ЭНастройка шагов

  • Идти к Консоль облачной платформы Google и войдите, используя свою учетную запись Google, или зарегистрируйтесь, если у вас еще нет учетной записи.

  • Перейти в проект с активированным биллингом или создавать новый платежный аккаунт для проекта.

  • Перейти в раздел Облачные функции и нажмите «Создать функцию».

    Обратите внимание, что за использование облачных функций взимается плата.

    платить .

  • Заполните следующие поля:
Имя: например, ftp-bq-integration или любое другое подходящее имя; Выделенная память: 2 ГБ или меньше, в зависимости от размера обрабатываемого файла; Курок: HTTP; Источник: Встроенный редактор; Время выполнения: Питон 3.X.
  • Скопируйте содержимое файла main.py во встроенный редактор на вкладку main.py.
  • Скопируйте содержимое файла требования.

    txt во встроенный редактор, вкладка «требования.

    txt».

  • Укажите функцию для вызова как ftp/ftps/https и т. д., в зависимости от используемого вами модуля.

  • В расширенных настройках увеличьте время ожидания с 60 секунд. до 540 сек.

    или меньше, в зависимости от размера обрабатываемого файла.

  • Завершите создание функции «Облако», нажав кнопку «Создать».



FTP / FTPS / SFTP

Этот модуль предназначен для передачи файлов с FTP (FTPS, SFTP) серверов в Google BigQuery с помощью функции Google Cloud. Решение позволяет автоматически загружать данные в Google BigQuery из файла, который регулярно обновляется на FTP-сервере.

Файл, который необходимо получить с соответствующего сервера, может иметь любое подходящее расширение (.

json, .

txt, .

csv), но должен быть в одном из следующих форматов: JSON (с разделителями новой строки) или значения, разделенные запятыми.

(CSV).



Пример использования

  
  
  
   

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)



HTTP(s)

Модуль для передачи файлов с HTTPS-серверов в Google BigQuery.

Пример использования



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)



Внутренняя связь

Модуль для автоматизации передачи данных из Интеркома в Google BigQuery с использованием функций Google Cloud. На данный момент модуль позволяет импортировать из Интеркома такие сущности как: пользователи, компании, контакты, администраторы, разговоры, команды, теги, сегменты.

Однако модуль не поддерживает пользовательские атрибуты.



Пример использования



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)



MySQL

Используется для передачи файлов с серверов MySQL в Google BigQuery с помощью функции Google Cloud. Это решение позволяет автоматически загружать данные в Google BigQuery из таблиц, которые регулярно обновляются на сервере MySQL.

Пример использования



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)

Более подробную документацию по каждому модулю можно найти в файлах readme в каждом разделе.

Это только начало, и сейчас мы работаем над скриптами для Битрикс и amoCRM, так как видим, что они наиболее популярны среди наших клиентов.

Поделитесь, какие методы вы используете для объединения данных и каких интеграций вам для этого не хватает. Теги: #python #script #google bigquery #Google Cloud Platform #Веб-аналитика #Маркетинг #Интернет-маркетинг #python #программирование #Веб-аналитика #Интернет-маркетинг

Вместе с данным постом часто просматривают: