Интеграция данных с Google BigQuery
В прошлом году исследовательская компания IDC сделала замечательный прогноз. Согласно их отчету, объем данных, производимых во всем мире, достигнет 163 зеттабайт (1 ЗБ = 1 триллион ГБ) к 2025 году, что в десять раз больше, чем в 2016 году. Гигантское увеличение объема доступных данных может показаться серьезным вызовом для бизнеса, особенно для тех компаний, которым не хватает инструментов, необходимых для эффективных запросов и их обработки. В результате огромное количество данных останется необработанным и неиспользованным.
Вход в Google BigQuery.
Чтобы решить эту задачу, Google представил алгоритм MapReduce, который может разделять и обрабатывать массивные объемы данных в экосистеме Hadoop. Google BigQuery продолжает развивать эту концепцию и дальше: BigQuery дает компаниям возможность обрабатывать петабайты данных за считанные минуты или даже секунды. В этой статье мы более подробно рассмотрим BigQuery, его возможности и представим некоторые сведения о том, как начать работу с этим мощным инструментом обработки данных.
Что такое BigQuery?
Это облачное хранилище данных от Google, которое позволяет пользователям запрашивать и анализировать большие объемы данных, доступные только для чтения. Используя синтаксис, подобный SQL, BigQuery выполняет запросы к миллиардам строк данных за считанные секунды.
Google BigQuery – это IaaS (инфраструктура как платформа), которая предлагает бессерверную масштабируемую инфраструктуру вместе с эластичной моделью ценообразования с оплатой по мере использования. Это избавляет пользователей от усилий и затрат, связанных с приобретением локального оборудования и управлением им. Более того, это – доступная услуга, поскольку пользователи платят только за используемое оборудование и обработанные запросы.
BigQuery успешно демократизирует анализ больших данных. До его запуска только компании с огромными финансовыми и человеческими ресурсами могли позволить себе инфраструктуру, необходимую для проведения такого масштабного анализа. BigQuery меняет эту ситуацию, фактически арендуя инфраструктуру и вычислительные ресурсы, необходимые для добычи огромных объемов данных для бизнес-аналитики.
Ключ к BigQuery – Dremel.
BigQuery – это общедоступный интерфейс системы запросов Dremel от Google. Работая вместе с центрами обработки данных Google, именно Dremel позволяет BigQuery быстро и эффективно выполнять задания по обработке больших объемов данных.
Хотя интерактивные запросы к традиционным системам баз данных можно было спокойно запускать на протяжении десятилетий, воспроизвести этот процесс в мире больших данных будет непросто. Это связано с наличием огромных объемов неструктурированных данных, таких как изображения, видео, файлы журналов и книги. Все эти данные нужно было запросить, и Google требовалось решение.
Сначала для решения этой проблемы они разработали MapReduce. Однако его подход к пакетной обработке делал его не идеальным для мгновенных запросов. С другой стороны, Dremel позволил Google выполнять интерактивные запросы к миллиардам записей за секунды.
За занавеской BigQuery.
Чтобы понять, что делает BigQuery таким мощным, лучше всего будет изучить функции и характеристики Dremel. В частности, рассмотрим архитектуру данных Dremel, столбчатые базы данных и компоненты вложенных хранилищ данных.
Древовидная архитектура
Dremel использует древовидную архитектуру, и это означает, что он обрабатывает запрос как дерево выполнения. Деревья выполнения разбивают SQL-запрос на части, а затем повторно собирают результаты для повышения производительности. Слоты (или листья) читают миллиарды строк данных и выполняют над ними вычисления, в то время как микшеры (или ветви) агрегируют результаты.
Столбчатые базы данных.
Еще одна причина невероятно высокой производительности Dremel является использование столбчатого формата хранения данных вместо традиционного хранения в строках. Столбчатые базы данных обеспечивают лучшее сжатие из-за однородного характера данных в столбцах. При такой структуре извлекаются только необходимые столбцы, и это делает его идеальным выбором для огромных баз данных с миллиардами строк.
Операции сортировки и агрегации данных также проще проходят в столбчатых базах данных по сравнению с реляционными базами данных. Это делает столбчатые базы данных более подходящими для интенсивного анализа данных и параллельной обработки, используемой в древовидной архитектуре Dremel.
Вложенное хранилище данных.
Запросы на основе соединения могут занимать много времени в нормализованных базах данных, и эта проблема только усугубляется в больших базах. Dremel выбирает другой подход и позволяет хранить вложенные или повторяющиеся данные, используя тип данных – ЗАПИСЬ. Эта функция дает Dremel возможность поддерживать отношения между данными внутри таблицы. Вложенные данные можно загрузить из файлов JSON или других исходных форматов в таблицы.
Столбчатое и вложенное хранилище данных идеально подходят для запросов к полуструктурированным и неструктурированным данным, которые составляют важную часть мира больших данных.
Приступаем к работе с BigQuery.
Если Google BigQuery уже кажется вам подходящим решением для вашей компании, вы должны знать, что есть три способа получить к нему доступ – через веб-интерфейс, через REST API или через инструмент командной строки.
Доступ к BigQuery через веб-интерфейс.
Если вы новичок в BigQuery, веб-интерфейс может стать лучшей отправной точкой. И классическая, и более новая версии веб-интерфейса просты для понимания и работы. При запуске консоли пользовательского интерфейса появится окно, которое проведет вас через процесс запуска нового проекта.
После создания нового проекта необходимо выполнить три шага, прежде чем вы сможете начать использовать BigQuery для выполнения заданий:
Шаг 1. Включите API BigQuery для проекта.
Шаг 2. Введите платежные данные, даже если это бесплатная пробная версия. В бесплатный пакет входит 10 ГБ активного хранилища и 1 ТБ обрабатываемых данных запросов в месяц.
Шаг 3. Подготовьте набор данных.
Подготовка данных к анализу.
Поскольку BigQuery работает с Google Cloud Platform, вам необходимо загрузить данные в Google Cloud Storage, прежде чем вы сможете выполнять запросы. Перед импортом в облачное хранилище входные данные обычно структурируются в таких форматах, как CSV, JSON или Avro.
Вы можете использовать сервис передачи данных для планирования и управления будущим импортом данных. Кроме того, Google допускает интеграцию с другими своими продуктами, такими как Google Drive, Google BigTable и Google Sheets. Если данные находятся в одном из этих источников, нет необходимости повторно импортировать их.
Как только ваши данные будут в правильном источнике, вы можете импортировать их в BigQuery и начать выполнение запросов.