BigQuery
BigQuery — це безсерверне сховище даних, що належить Google[1], для інтерактивного широкомасштабного аналізу великих наборів даних. Може використовуватись через веб інтерфейс, інтерфейс командного рядка та API. Оплата здійснюється за кількість терабайт даних опрацьованих при виконанні запитів.[1] ІсторіяПісля обмеженого періоду тестування в 2010 році BigQuery став доступним широкому загалу у листопаді 2011 року на конференції Google Atmosphere.[2] У 2014 році MapR[en] представив проект Apache Drill для вирішення подібних проблем.[3] У квітні 2016 року європейські користувачі зазнали 12-годинного збою у роботі служби.[4] У травні 2016 року була оголошена підтримка для Google Sheets.[5] БудоваBigQuery використовує ряд технологій Google, таких як рушій виконання запитів Dremel[6][7], систему керування кластером Google Borg, файлову систему Colossus, формат даних Capacitor та мережу Jupiter. Архітектура відокремлює зберігання даних від їх обробки, що дозволяє окремо маштабувати зберігання і запити[1]. ЗберіганняBigQuery підтримує як пакетний або потоковий режим запису вхідних даних. Для зберігання даних використовується колонковий формат[en] Capacitor. Кожна колонка зберігається в окремому файлі, що дозволяє ефективніше їх стискати і читати. Після кодування дані записуються в Colossus, яка є наступницею Google File System, і дозволяє читати зі швидкістю до терабайта за секунду.[1] Зовнішні джерела данихТаблиці які зберігає BigQuery називають внутрішніми. BigQuery також підтримує запити до зовнішніх таблиць, які можуть зберігатись у Bigtable, GCS, чи Google Drive[1]. Запити до зовнішніх даних повільніші. Виконання запитівДля виконання запитів система керування кластером Google Borg запускає тисячі паралельних робіт (англ. jobs) Dremel, кожна з яких може читати дані своєї частини таблиці, фільтрувати та агрегувати їх і передавати іншим роботам. Передача даних між ними здійснюється за допомогою мережі Jupiter, яка може передавати зі швидкістю до 1 петабіта на секунду.[1] Особливості
Користувацькі функціїBigQuery підтримує функції задані користувачем[en] мовою JavaScript.[12] Див. такожПримітки
Посилання
|