19.09.2020       Выпуск 352 (14.09.2020 - 20.09.2020)       Статьи

Учимся обращаться к данным и запрашивать их при помощи Google BigQuery. С примерами на Python и R

Совсем недавно у нас вышла подробная книга о работе с хранилищем данных Google BigQuery. Сегодня мы решили вновь кратко затронуть эту тему и опубликовать небольшой кейс о выполнении запросов к данным BigQuery на Python и R.

Сообщите в комментариях, интересует ли публикация на тему машинного обучения с применением BigQuery

Читать>>




Экспериментальная функция:

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

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

Привет, Хабр!

Совсем

недавно

у нас вышла подробная

книга о работе с хранилищем данных 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), т.д.






Разместим вашу рекламу

Пиши: mail@pythondigest.ru

Нашли опечатку?

Выделите фрагмент и отправьте нажатием Ctrl+Enter.

Система Orphus