[Google Cloud Platform, Python, R, Профессиональная литература] Учимся обращаться к данным и запрашивать их при помощи Google BigQuery. С примерами на Python и R (перевод)

Автор Сообщение
news_bot ®

Стаж: 6 лет 9 месяцев
Сообщений: 27286

Создавать темы news_bot ® написал(а)
19-Сен-2020 14:31

Привет, хабр!
Совсем недавно у нас вышла подробная книга о работе с хранилищем данных 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), т.д.
===========
Источник:
habr.com
===========

===========
Автор оригинала: Rudderstack
===========
Похожие новости: Теги для поиска: #_google_cloud_platform, #_python, #_r, #_professionalnaja_literatura (Профессиональная литература), #_google_bigquery, #_python, #_r, #_sql, #_data_science, [url=https://torrents-local.xyz/search.php?nm=%23_blog_kompanii_izdatelskij_dom_«piter»&to=0&allw=0&o=1&s=0&f%5B%5D=820&f%5B%5D=959&f%5B%5D=958&f%5B%5D=872&f%5B%5D=967&f%5B%5D=954&f%5B%5D=885&f%5B%5D=882&f%5B%5D=863&f%5B%5D=881&f%5B%5D=860&f%5B%5D=884&f%5B%5D=865&f%5B%5D=873&f%5B%5D=861&f%5B%5D=864&f%5B%5D=883&f%5B%5D=957&f%5B%5D=859&f%5B%5D=966&f%5B%5D=956&f%5B%5D=955]#_blog_kompanii_izdatelskij_dom_«piter» (
Блог компании Издательский дом «Питер»
)[/url], #_google_cloud_platform, #_python, #_r, #_professionalnaja_literatura (
Профессиональная литература
)
Профиль  ЛС 
Показать сообщения:     

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

Текущее время: 22-Ноя 11:04
Часовой пояс: UTC + 5