Привет, Хабр!
Совсем недавно у нас вышла подробная книга о работе с хранилищем данных Google BigQuery. Сегодня мы решили вновь кратко затронуть эту тему и опубликовать небольшой кейс о выполнении запросов к данным BigQuery на Python и R.
Сообщите в комментариях, интересует ли публикация на тему машинного обучения с применением BigQuery
В этой статье мы рассмотрим, как загружать данные Google BigQuery при помощи Python и R, а потом поговорим о запросах к данным, позволяющим делать полезные выводы. Мы воспользуемся библиотекой Google Cloud BigQuery для подключения к BigQuery Python и библиотекой bigrquery, чтобы добиться того же на языке R.
Также обсудим два этапа операций с данными BigQuery при помощи Python/R:
В этой статье предполагается, что все ваши пользовательские данные сохранены в Google BigQuery.
Python – один из самых популярных универсальных языков для обращения с данными. Он пользуется вниманием и востребованностью благодаря гибкости и легкости в обращении, а в data science может похвастаться самыми разнообразными библиотеками и инструментами для взаимодействия со сторонними системами.
Чтобы запрашивать данные Google BigQuery при помощи Python, необходимо подключить клиент Python к инстансу BigQuery. При этом используется облачная клиентская библиотека для Google BigQuery API. Также существуют и альтернативные решения для подключения к BigQuery при помощи Python; например, отлично подойдет библиотека BigQuery-Python от tylertreat.
Мы будем работать с библиотекой Google Cloud BigQuery, так как она стабильна и официально поддерживается Google.
Здесь предполагается, что у вас уже настроена среда разработки для Python.
Чтобы установить библиотеку, запустите в командной строке следующую команду:
Далее подключаем клиент к базе данных. Для этого потребуется скачать файл JSON, содержащий учетные данные к сервису BigQuery. Если у вас нет такого аккаунта, здесь описано, как его создать. Далее скачайте этот файл JSON на вашу локальную машину.
Теперь, когда у нас все настроено, переходим к инициализации соединения. Для этого используется следующий код Python:
В вышеприведенном фрагменте вам потребуется указать
В Google BigQuery проект является контейнером верхнего уровня и предоставляет задаваемый по умолчанию контроль доступа над всеми множествами данных.
Теперь, когда наш клиент BigQuery настроен и готов к использованию, можно выполнять запросы к множеству данных BigQuery.
Для этого используется метод запроса, помещающий задание запроса в очередь BigQuery. Затем запросы выполняются асинхронно — это означает, что мы не указываем никаких задержек, а клиент дожидается, пока задание будет выполнено. Как только это произойдет, метод возвращает экземпляр
Подробнее о том, как работает этот метод, рассказано в официальной документации здесь.
Вот как выглядит интересующий нас код Python:
Обратите внимание: в вышеприведенном запросе по умолчанию используется стандартный синтаксис SQL. Если вы желаете пользоваться унаследованным SQL, то код будет таким:
Язык R – популярная альтернатива Python, активно применяется в data science. Если вас интересует детальный и методичный статистический анализ данных, то мало найдется языков, способных потягаться в этом с R.
При работе с Google BigQuery язык R также предлагает надежную и удобную в использовании библиотеку для запрашивания данных и для операций с ними. Здесь мы будем работать с библиотекой bigrquery, которую создал и поддерживает Хадли Уикем, директор по исследовательской работе из RStudio.
Здесь предполагается, что вы уже настроили среду для разработки в R. Если нет – воспользуйтесь этим руководством для настройки RStudio.
Для установки bigrquery запускаем следующую команду из консоли R:
Вот так просто! Мы готовы к работе.
Как и в случае с Python, требуется авторизация нашего клиента R для доступа к Google Cloud Services. Как следует из документации по bigrquery, проследуем по приглашению из консоли R, чтобы открыть URL для авторизации, после чего скопируем код в консоль.
Обратите внимание: такую авторизацию необходимо выполнить всего один раз. Все последующие запросы будут автоматически обновлять учетные данные для доступа.
Чтобы запрашивать данные BigQuery на языке R, выполним следующие шаги:
Вот код, при помощи которого все это реализуется:
Как и в случае с Python, можно выполнять запросы, написанные на унаследованном SQL. Также можно изменить значение
Итак, мы рассмотрели, как легко и просто работать с данными, сохраненными в Google BigQuery, обращаясь к ним на языках Python и R.
На двух этих языках не составляет труда построить статистическую модель на основе данных, обработанных таким образом, а саму модель задействовать в различных целях: понимать, как ведет себя пользователь в приложении, прогнозировать коэффициент оттока (churn rate), т.д.
Совсем недавно у нас вышла подробная книга о работе с хранилищем данных Google BigQuery. Сегодня мы решили вновь кратко затронуть эту тему и опубликовать небольшой кейс о выполнении запросов к данным BigQuery на Python и R.
Сообщите в комментариях, интересует ли публикация на тему машинного обучения с применением BigQuery
Обзор
В этой статье мы рассмотрим, как загружать данные Google BigQuery при помощи Python и R, а потом поговорим о запросах к данным, позволяющим делать полезные выводы. Мы воспользуемся библиотекой Google Cloud BigQuery для подключения к BigQuery Python и библиотекой bigrquery, чтобы добиться того же на языке R.
Также обсудим два этапа операций с данными BigQuery при помощи Python/R:
- Подключение к Google BigQuery и доступ к данным
- Запрашивание данных при помощи Python/R
В этой статье предполагается, что все ваши пользовательские данные сохранены в Google BigQuery.
Python
Python – один из самых популярных универсальных языков для обращения с данными. Он пользуется вниманием и востребованностью благодаря гибкости и легкости в обращении, а в data science может похвастаться самыми разнообразными библиотеками и инструментами для взаимодействия со сторонними системами.
Подключение к Google BigQuery при помощи Python
Чтобы запрашивать данные Google BigQuery при помощи Python, необходимо подключить клиент Python к инстансу BigQuery. При этом используется облачная клиентская библиотека для Google BigQuery API. Также существуют и альтернативные решения для подключения к BigQuery при помощи Python; например, отлично подойдет библиотека BigQuery-Python от tylertreat.
Мы будем работать с библиотекой Google Cloud BigQuery, так как она стабильна и официально поддерживается Google.
Здесь предполагается, что у вас уже настроена среда разработки для Python.
Чтобы установить библиотеку, запустите в командной строке следующую команду:
pip install --upgrade google-cloud-bigquery
Далее подключаем клиент к базе данных. Для этого потребуется скачать файл JSON, содержащий учетные данные к сервису BigQuery. Если у вас нет такого аккаунта, здесь описано, как его создать. Далее скачайте этот файл JSON на вашу локальную машину.
Теперь, когда у нас все настроено, переходим к инициализации соединения. Для этого используется следующий код Python:
rom google.cloud import bigquery
from google.oauth2 import service_account
credentials = service_account.Credentials.from_service_account_file(
'path/to/file.json')
project_id = 'my-bq'
client = bigquery.Client(credentials= credentials,project=project_id)
В вышеприведенном фрагменте вам потребуется указать
project_id
и местоположение JSON-файла с ключом, заменив 'path/to/file.json
' на фактически верный путь к сохраненному на локальной машине файлу JSON.В Google BigQuery проект является контейнером верхнего уровня и предоставляет задаваемый по умолчанию контроль доступа над всеми множествами данных.
Выполнение запросов к данным BigQuery при помощи Python
Теперь, когда наш клиент BigQuery настроен и готов к использованию, можно выполнять запросы к множеству данных BigQuery.
Для этого используется метод запроса, помещающий задание запроса в очередь BigQuery. Затем запросы выполняются асинхронно — это означает, что мы не указываем никаких задержек, а клиент дожидается, пока задание будет выполнено. Как только это произойдет, метод возвращает экземпляр
Query_Job
, содержащий результаты.Подробнее о том, как работает этот метод, рассказано в официальной документации здесь.
Вот как выглядит интересующий нас код Python:
query_job = client.query("""
SELECT *
FROM dataset.my_table
LIMIT 1000 """)
results = query_job.result() # Дожидаемся завершения задания.
Обратите внимание: в вышеприведенном запросе по умолчанию используется стандартный синтаксис SQL. Если вы желаете пользоваться унаследованным SQL, то код будет таким:
job_config.use_legacy_sql = True
query_job = client.query("""
SELECT *
FROM dataset.my_table
LIMIT 1000""", job_config = job_config)
results = query_job.result() # Дожидаемся завершения задания.
R
Язык R – популярная альтернатива Python, активно применяется в data science. Если вас интересует детальный и методичный статистический анализ данных, то мало найдется языков, способных потягаться в этом с R.
При работе с Google BigQuery язык R также предлагает надежную и удобную в использовании библиотеку для запрашивания данных и для операций с ними. Здесь мы будем работать с библиотекой bigrquery, которую создал и поддерживает Хадли Уикем, директор по исследовательской работе из RStudio.
Здесь предполагается, что вы уже настроили среду для разработки в R. Если нет – воспользуйтесь этим руководством для настройки RStudio.
Подключение к Google BigQuery при помощи R
Для установки bigrquery запускаем следующую команду из консоли R:
install.packages(“bigrquery”)
Вот так просто! Мы готовы к работе.
Как и в случае с Python, требуется авторизация нашего клиента R для доступа к Google Cloud Services. Как следует из документации по bigrquery, проследуем по приглашению из консоли R, чтобы открыть URL для авторизации, после чего скопируем код в консоль.
Обратите внимание: такую авторизацию необходимо выполнить всего один раз. Все последующие запросы будут автоматически обновлять учетные данные для доступа.
Выполнение запросов к данным BigQuery при помощи R
Чтобы запрашивать данные BigQuery на языке R, выполним следующие шаги:
- Укажем ID проекта из консоли Google Cloud, так, как это делалось в Python.
- Сформируем строку запроса, при помощи которой запросим данные.
- Вызовем
query_exec
с ID нашего проекта и строкой запроса.
Вот код, при помощи которого все это реализуется:
# импортируем библиотеку
library(bigrquery)
# здесь идет ID нашего проекта
project_id <- "your-project-id"
# пример запроса
sql_string <- "SELECT * FROM dataset.my_table LIMIT 1000"
# выполняем запрос и сохраняем результат
query_results <- query_exec(sql_string, project = project_id, useLegacySql = FALSE)
Как и в случае с Python, можно выполнять запросы, написанные на унаследованном SQL. Также можно изменить значение
useLegacySql
на TRUE
в вашей функции query_exec
.Заключение
Итак, мы рассмотрели, как легко и просто работать с данными, сохраненными в Google BigQuery, обращаясь к ним на языках Python и R.
На двух этих языках не составляет труда построить статистическую модель на основе данных, обработанных таким образом, а саму модель задействовать в различных целях: понимать, как ведет себя пользователь в приложении, прогнозировать коэффициент оттока (churn rate), т.д.