Мы постоянно работаем с Google BigQuery — импортируем данные о пользователях, их заказах и расходах на рекламу из разных источников, чтобы иметь возможность объединить их между собой.
Что это нам дает? Например, если у вас интернет-магазин и клиент делает заказ по телефону, а затем авторизуется на сайте, то с помощью Google BigQuery вы можете связать все его действия задним числом.
Вы можете отслеживать весь путь клиента по маркетинговой воронке – от первого посещения сайта до покупки в обычном магазине, и оценивать рекламные кампании с учетом таких офлайн-продаж.
В этой коллекции у нас есть 6 скриптов Python для автоматизации импорта данных в Google BigQuery используя Возможности Google Cloud : FTP; ФЦПС; HTTP(s); Внутренняя связь; MySQL и SFTP. Принцип работы тот же: с помощью HTTP POST-запроса вызывается функция Cloud, которая получает данные из источника и загружает их в таблицу Google BigQuery. Если таблица уже существует в выбранном наборе данных, она будет перезаписана.
Основные требования
- Проект на Google Cloud Platform с активированным биллингом.
- Доступ к редактированию (роль «Редактор» данных BigQuery) и выполнению задач (роль BigQuery Task User) для учетной записи сервиса функции Cloud в проекте BigQuery, куда будет загружена таблица;
- HTTP-клиент для выполнения POST-запросов, вызывающих функцию Cloud.
ЭНастройка шагов
- Идти к Консоль облачной платформы Google и войдите, используя свою учетную запись Google, или зарегистрируйтесь, если у вас еще нет учетной записи.
- Перейти в проект с активированным биллингом или создавать новый платежный аккаунт для проекта.
- Перейти в раздел Облачные функции и нажмите «Создать функцию».
Обратите внимание, что за использование облачных функций взимается плата.
платить .
- Заполните следующие поля:
- Скопируйте содержимое файла 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 #программирование #Веб-аналитика #Интернет-маркетинг
-
4 Лучше, Чем 3, А Как Насчет 5?
19 Oct, 24 -
Комплект Для Разработки Iphone На Wwdc?
19 Oct, 24 -
Clrium, Последний Анонс Перед Москвой
19 Oct, 24