Google BigQuery ma'lumotlar tahlilini qanday demokratlashtirdi. 1-qism

Hey Xabr! Hozirda OTUSda yangi kurs oqimiga ro‘yxatdan o‘tish ochiq Ma'lumotlar muhandisi. Kurs boshlanishi arafasida biz siz uchun an'anaviy tarzda qiziqarli material tarjimasini tayyorladik.

Har kuni yuz milliondan ortiq odam Twitter’ga dunyoda nimalar bo‘layotganini bilish va muhokama qilish uchun tashrif buyuradi. Har bir tvit va boshqa har qanday foydalanuvchi harakati Twitter ichida ichki ma'lumotlarni tahlil qilish uchun mavjud bo'lgan voqeani yaratadi. Yuzlab xodimlar ushbu ma'lumotlarni tahlil qiladi va vizualizatsiya qiladi va ularning tajribasini yaxshilash Twitter Data Platform jamoasi uchun ustuvor vazifa hisoblanadi.

Bizning fikrimizcha, keng ko'lamli texnik ko'nikmalarga ega foydalanuvchilar ma'lumotlarni topishlari va yaxshi ishlaydigan SQL-ga asoslangan tahlil va vizualizatsiya vositalaridan foydalanishlari kerak. Bu ma'lumotlar tahlilchilari va mahsulot menejerlarini o'z ichiga olgan texnik jihatdan kamroq foydalanuvchilarning butunlay yangi guruhiga ma'lumotlardan tushunchalarni olish imkonini beradi, bu ularga Twitter kuchini yaxshiroq tushunish va undan foydalanish imkonini beradi. Biz Twitterda ma'lumotlar tahlilini shunday demokratlashtiramiz.

Ichki maʼlumotlarni tahlil qilish uchun vositalarimiz va imkoniyatlarimiz takomillashgani sari biz Twitter xizmatining yaxshilanganiga guvoh boʻldik. Biroq, hali ham yaxshilanish uchun imkoniyatlar mavjud. Scalding kabi joriy vositalar dasturlash tajribasini talab qiladi. Presto va Vertica kabi SQL-ga asoslangan tahlil vositalari keng miqyosda ishlash muammolariga ega. Bundan tashqari, bizda doimiy kirish imkoni bo'lmagan bir nechta tizimlar bo'ylab ma'lumotlarni tarqatish bilan bog'liq muammolar mavjud.

O'tgan yili biz e'lon qildik Google bilan yangi hamkorlik, uning ichida biz o'zimizning qismlarini o'tkazamiz ma'lumotlar infratuzilmasi Google Cloud Platform (GCP) da. Biz Google Cloud vositalari degan xulosaga keldik Katta ma'lumot Twitterda tahlil, vizualizatsiya va mashinani o'rganishni demokratlashtirish bo'yicha tashabbuslarimizda bizga yordam berishi mumkin:

Ushbu maqolada siz ushbu vositalar bilan tajribamiz haqida bilib olasiz: biz nima qildik, nimani o'rgandik va bundan keyin nima qilamiz. Endi biz ommaviy va interaktiv tahlillarga e'tibor qaratamiz. Haqiqiy vaqtda tahlil qilish keyingi maqolada muhokama qilinadi.

Twitterdagi ma'lumotlar omborlari tarixi

BigQuery-ga kirishdan oldin, Twitterdagi ma'lumotlar omborlari tarixini qisqacha aytib o'tishga arziydi. 2011-yilda Twitter ma'lumotlarini tahlil qilish Vertica va Hadoop-da amalga oshirildi. MapReduce Hadoop ishlarini yaratish uchun biz Pig-dan foydalandik. 2012-yilda biz Pig-ni Scalding bilan almashtirdik, u murakkab quvurlarni yaratish va sinovdan o'tkazish qulayligi kabi afzalliklarga ega Scala API-ga ega edi. Biroq, SQL bilan ishlash qulayroq bo'lgan ko'plab ma'lumotlar tahlilchilari va mahsulot menejerlari uchun bu juda keskin o'rganish egri chizig'i edi. Taxminan 2016 yilda biz Presto-dan Hadoop ma'lumotlari uchun SQL interfeysi sifatida foydalanishni boshladik. Spark Python interfeysini taklif qildi, bu uni maxsus ma'lumotlar fanlari va mashinalarni o'rganish uchun yaxshi tanlov qiladi.

2018 yildan beri biz ma'lumotlarni tahlil qilish va vizualizatsiya qilish uchun quyidagi vositalardan foydalandik:

  • Ishlab chiqarish liniyalari uchun kuydirish
  • Scalding va Spark maxsus maʼlumotlarni tahlil qilish va mashinani oʻrganish uchun
  • Ad hoc va interaktiv SQL tahlili uchun Vertica va Presto
  • Vaqt seriyalari ko'rsatkichlariga past interaktiv, kashfiyot va past kechikish uchun Druid
  • Ma'lumotlarni vizualizatsiya qilish uchun Tableau, Zeppelin va Pivot

Biz ushbu vositalar juda kuchli funksiyalarni taqdim etsa-da, biz bu funksiyalarni Twitter’da kengroq auditoriyaga taqdim etishda qiyinchiliklarga duch keldik. Platformamizni Google Cloud bilan kengaytirish orqali biz barcha Twitter uchun tahliliy vositalarimizni soddalashtirishga eʼtibor qaratmoqdamiz.

Google BigQuery ma'lumotlar ombori

Twitterdagi bir nechta jamoalar BigQuery-ni ba'zi ishlab chiqarish quvurlariga kiritgan. Ularning tajribasidan foydalanib, biz Twitter’dan foydalanishning barcha holatlari uchun BigQuery imkoniyatlarini baholashni boshladik. Bizning maqsadimiz BigQuery-ni butun kompaniyaga taklif qilish va uni Data Platform asboblar to'plamida standartlashtirish va qo'llab-quvvatlash edi. Bu ko'p sabablarga ko'ra qiyin edi. Bizga katta hajmdagi maʼlumotlarni ishonchli qabul qilish, kompaniya boʻyicha maʼlumotlar boshqaruvini qoʻllab-quvvatlash, kirishni toʻgʻri boshqarishni taʼminlash va mijozlarning maxfiyligini taʼminlash uchun infratuzilmani rivojlantirishimiz kerak edi. Jamoalar BigQuery’dan samarali foydalanishlari uchun biz resurslarni taqsimlash, monitoring qilish va to‘lovlarni qaytarish tizimlarini yaratishimiz kerak edi.

2018-yil noyabr oyida biz butun kompaniya uchun BigQuery va Data Studio-ning alfa versiyasini chiqardik. Biz Twitter xodimlariga eng koʻp ishlatiladigan shaxsiy maʼlumotlardan tozalangan jadvallarimizni taklif qildik. BigQuery-dan muhandislik, moliya va marketing kabi turli jamoalardagi 250 dan ortiq foydalanuvchilar foydalangan. So'nggi paytlarda ular rejalashtirilgan so'rovlarni hisobga olmaganda, oyiga 8 ga yaqin PB ni qayta ishlagan holda 100 ga yaqin so'rovlarni bajardilar. Juda ijobiy fikr-mulohazalarni olganimizdan so'ng, biz oldinga siljishga qaror qildik va BigQuery-ni Twitterdagi ma'lumotlar bilan ishlash uchun asosiy manba sifatida taklif qildik.

Mana Google BigQuery maʼlumotlar omborimizning yuqori darajadagi arxitekturasining diagrammasi.

Google BigQuery ma'lumotlar tahlilini qanday demokratlashtirdi. 1-qism
Biz mahalliy Hadoop klasterlaridan maʼlumotlarni Google Cloud Storage (GCS) ga ichki Cloud Replicator vositasi yordamida nusxalaymiz. Keyin biz "Apache Airflow" dan foydalanadigan quvurlarni yaratish uchun foydalanamiz.bq_load» GCS dan BigQuery-ga ma'lumotlarni yuklash uchun. GCS-da Parket yoki Thrift-LZO ma'lumotlar to'plamini so'rash uchun Presto-dan foydalanamiz. BQ Blaster HDFS Vertica va Thrift-LZO ma'lumotlar to'plamlarini BigQuery-ga yuklash uchun ichki kuydiruvchi vositadir.

Keyingi bo'limlarda biz foydalanish qulayligi, unumdorlik, ma'lumotlarni boshqarish, tizim salomatligi va narx bo'yicha yondashuvimiz va tajribamizni muhokama qilamiz.

Foydalanish qulayligi

Biz BigQuery dasturini o'rnatishni talab qilmagani uchun foydalanuvchilarga BigQuery bilan boshlash oson ekanligini aniqladik va foydalanuvchilar unga intuitiv veb-interfeys orqali kirishlari mumkin edi. Biroq, foydalanuvchilar ba'zi GCP xususiyatlari va tushunchalari, jumladan loyihalar, ma'lumotlar to'plami va jadvallar kabi resurslar bilan tanishishlari kerak edi. Biz foydalanuvchilarga ishga kirishishda yordam berish uchun qo'llanmalar va qo'llanmalar ishlab chiqdik. Olingan asosiy tushuncha bilan foydalanuvchilarga Data Studio dasturida maʼlumotlar toʻplamida harakat qilish, sxema va jadval maʼlumotlarini koʻrish, oddiy soʻrovlarni bajarish va natijalarni vizualizatsiya qilish oson.

BigQuery-ga ma'lumotlarni kiritishdan maqsadimiz HDFS yoki GCS ma'lumotlar to'plamlarini bir marta bosish bilan uzluksiz yuklashni ta'minlash edi. Biz ko'rib chiqdik Cloud Composer (Airflow tomonidan boshqariladi) lekin “Domenni cheklangan almashish” xavfsizlik modelimiz tufayli undan foydalana olmadik (quyida bu haqda batafsil maʼlumotni boshqarish boʻlimida). Biz BigQuery yuklash vazifalarini tartibga solish uchun Google Data Transfer Service (DTS) dan foydalanishni sinab ko'rdik. DTS tezda o'rnatilgan bo'lsa-da, u bog'liqliklari bo'lgan quvurlarni qurish uchun moslashuvchan emas edi. Alfa versiyamiz uchun biz GCE-da o'zimizning Apache Airflow muhitini yaratdik va uni ishlab chiqarishga va Vertica kabi ko'proq ma'lumot manbalarini qo'llab-quvvatlashga tayyorlamoqdamiz.

Ma'lumotlarni BigQuery-ga aylantirish uchun foydalanuvchilar rejalashtirilgan so'rovlar yordamida oddiy SQL ma'lumotlar quvurlarini yaratadilar. Bog'liqliklari bo'lgan murakkab ko'p bosqichli quvurlar uchun biz o'z havo oqimi tizimidan yoki Cloud Composer-dan foydalanishni rejalashtirmoqdamiz. Bulutli ma'lumotlar oqimi.

unumdorlik

BigQuery katta hajmdagi ma'lumotlarni qayta ishlaydigan umumiy maqsadli SQL so'rovlari uchun mo'ljallangan. U tranzaktsion ma'lumotlar bazasi talab qiladigan past kechikish, yuqori o'tkazuvchanlik so'rovlari yoki amalga oshirilgan past kechikish vaqt seriyasini tahlil qilish uchun mo'ljallanmagan. Apache Druid. Interaktiv tahliliy so'rovlar uchun bizning foydalanuvchilarimiz javob vaqtini bir daqiqadan kamroq kutishadi. Ushbu umidlarni qondirish uchun BigQuery-dan foydalanishni loyihalashimiz kerak edi. Foydalanuvchilarimiz uchun prognoz qilinadigan samaradorlikni taʼminlash maqsadida biz BigQuery funksiyasidan foydalandik, bu funksiya mijozlarga belgilangan toʻlov asosida taqdim etiladi, bu esa loyiha egalariga oʻz soʻrovlari uchun minimal oʻrinlarni band qilish imkonini beradi. Slot BigQuery - bu SQL so'rovlarini bajarish uchun zarur bo'lgan hisoblash quvvati birligi.

Biz har biri taxminan 800 TB maʼlumotni qayta ishlovchi 1 dan ortiq soʻrovlarni tahlil qildik va oʻrtacha bajarilish vaqti 30 soniya ekanligini aniqladik. Shuningdek, biz ishlash ko'p jihatdan turli loyihalar va vazifalarda bizning uyamizdan foydalanishga bog'liqligini bilib oldik. Ishlab chiqarishdan foydalanish holatlari va interaktiv tahlillar uchun ishlashni saqlab qolish uchun biz ishlab chiqarish va maxsus slot zaxiralarimizni aniq ajratishimiz kerak edi. Bu bizning uyni band qilish va loyiha ierarxiyasi uchun dizaynimizga katta ta'sir ko'rsatdi.

Ma'lumotlarni boshqarish, funksionallik va tizimlarning narxi haqida yaqin kunlarda tarjimaning ikkinchi qismida gaplashamiz va endi barchani taklif qilamiz. bepul jonli vebinar, bu erda siz kurs haqida ko'proq ma'lumot olishingiz mumkin, shuningdek, bizning ekspertimiz - Egor Mateshukga (MaximaTelecom katta ma'lumotlar muhandisi) savollar berishingiz mumkin.

Ko'proq o'qish:

Manba: www.habr.com

a Izoh qo'shish