Google BigQuery деректер талдауын қалай демократияландырды. 1 бөлім

Эй Хабр! Дәл қазір OTUS-те жаңа курс ағынына жазылу ашық Деректер инженері. Курстың басталуына орай біз сіздерге дәстүрлі түрде қызықты материалдың аудармасын дайындадық.

Күн сайын жүз миллионнан астам адам әлемде не болып жатқанын білу және оны талқылау үшін Twitter-ге кіреді. Әрбір твит және кез келген басқа пайдаланушы әрекеті Twitter ішінде ішкі деректерді талдау үшін қолжетімді оқиғаны жасайды. Жүздеген қызметкерлер бұл деректерді талдайды және визуализациялайды және олардың тәжірибесін жақсарту Twitter Data Platform командасының басты басымдығы болып табылады.

Техникалық дағдылардың кең ауқымы бар пайдаланушылар деректерді табуы және жақсы жұмыс істейтін SQL негізіндегі талдау және визуализация құралдарына қол жеткізуі керек деп есептейміз. Бұл деректер талдаушылары мен өнім менеджерлерін қоса алғанда, техникалық деңгейі төмен пайдаланушылардың мүлдем жаңа тобына деректерден түсінік алуға мүмкіндік береді, бұл оларға Twitter қуатын жақсырақ түсінуге және пайдалануға мүмкіндік береді. Біз Twitter-дегі деректерді талдауды осылайша демократияландырамыз.

Ішкі деректерді талдау құралдары мен мүмкіндіктеріміз жақсарған сайын, біз Twitter қызметінің жақсарғанын байқадық. Дегенмен әлі де жақсартуға мүмкіндіктер бар. Scalding сияқты қазіргі құралдар бағдарламалау тәжірибесін қажет етеді. Presto және Vertica сияқты SQL негізіндегі талдау құралдарында үлкен ауқымда өнімділік мәселелері бар. Сондай-ақ бізде деректерді оған тұрақты қол жеткізусіз бірнеше жүйеге тарату мәселесі бар.

Өткен жылы хабарлаған болатынбыз Google-мен жаңа ынтымақтастық, оның ішінде біз өзіміздің бөліктерімізді тасымалдаймыз деректер инфрақұрылымы Google Cloud Platform (GCP) платформасында. Біз Google Cloud құралдары деген қорытындыға келдік Үлкен деректер Twitter-де талдауды, визуализацияны және машиналық оқытуды демократияландыру бастамаларымызда бізге көмектесе алады:

  • BigQuery: SQL механизмі негізіндегі кәсіпорын деректер қоймасы Dremel, ол өзінің жылдамдығымен, қарапайымдылығымен танымал және оны жеңеді машиналық оқыту.
  • деректер студиясы: Google Docs сияқты бірлескен мүмкіндіктері бар үлкен деректерді визуализациялау құралы.

Бұл мақалада сіз осы құралдарды пайдалану тәжірибеміз туралы білесіз: біз не істедік, нені білдік және бұдан әрі не істейміз. Біз енді топтамалық және интерактивті аналитикаға назар аударамыз. Нақты уақыттағы талдаулар келесі мақалада талқыланады.

Twitter-дегі деректер қоймаларының тарихы

BigQuery-ге кіріспес бұрын, Twitter-дегі деректер қоймаларының тарихын қысқаша айтып өткен жөн. 2011 жылы Twitter-дегі деректерді талдау Vertica және Hadoop жүйелерінде жүргізілді. MapReduce Hadoop тапсырмаларын жасау үшін біз Pig қолданбасын қолдандық. 2012 жылы біз Pig-ті Scalding-пен ауыстырдық, оның Scala API интерфейсі күрделі құбыр желілерін жасау мүмкіндігі және тестілеудің қарапайымдылығы сияқты артықшылықтары бар. Дегенмен, SQL-мен жұмыс істеу ыңғайлы болған көптеген деректер талдаушылары мен өнім менеджерлері үшін бұл өте күрделі оқу қисығы болды. Шамамен 2016 жылы біз Presto-ны Hadoop деректеріне арналған SQL интерфейсі ретінде пайдалана бастадық. Spark Python интерфейсін ұсынды, бұл оны арнайы деректер ғылымы мен машиналық оқыту үшін жақсы таңдау жасайды.

2018 жылдан бастап біз деректерді талдау және визуализациялау үшін келесі құралдарды қолдандық:

  • Өндірістік желілерді күйдіру
  • Арнайы деректерді талдау және машиналық оқыту үшін Scalding және Spark
  • Ad hoc және интерактивті SQL талдауына арналған Vertica және Presto
  • Уақыт қатарларының метрикасына төмен интерактивті, зерттеушілік және төмен кідіріспен қол жеткізу үшін Druid
  • Tableau, Zeppelin және деректерді визуализациялауға арналған Pivot

Бұл құралдар өте күшті мүмкіндіктерді ұсынса да, біз бұл мүмкіндіктерді Twitter-дегі кеңірек аудиторияға қолжетімді етуде қиындықтарға тап болдық. Платформамызды Google Cloud көмегімен кеңейте отырып, біз барлық Twitter үшін аналитикалық құралдарымызды жеңілдетуге назар аударамыз.

Google BigQuery деректер қоймасы

Twitter-дегі бірнеше команда BigQuery-ті кейбір өндіріс құбырларына қосқан. Олардың тәжірибесін пайдалана отырып, біз Twitter-ді қолданудың барлық жағдайлары үшін BigQuery мүмкіндіктерін бағалай бастадық. Біздің мақсатымыз BigQuery-ті бүкіл компанияға ұсыну және оны Data Platform құралдар жинағында стандарттау және қолдау болды. Бұл көптеген себептерге байланысты қиын болды. Бізге деректердің үлкен көлемін сенімді түрде алу, компания бойынша деректерді басқаруды қолдау, дұрыс қол жеткізуді басқаруды қамтамасыз ету және тұтынушылардың құпиялылығын қамтамасыз ету үшін инфрақұрылымды дамыту керек болды. Сондай-ақ, командалар BigQuery-ті тиімді пайдалана алуы үшін ресурстарды бөлу, бақылау және кері қайтару жүйелерін құруға тура келді.

2018 жылдың қарашасында біз бүкіл компания үшін BigQuery және Data Studio альфа нұсқасын шығардық. Біз Twitter қызметкерлеріне ең жиі қолданылатын жеке деректерден тазартылған электрондық кестелерімізді ұсындық. BigQuery-ді әртүрлі командалардың 250-ден астам пайдаланушылары, соның ішінде инженерия, қаржы және маркетинг пайдаланды. Жақында олар жоспарланған сұрауларды есептемегенде, айына шамамен 8 PB өңдей отырып, шамамен 100 XNUMX сұрауды орындады. Өте оң пікір алғаннан кейін біз алға жылжуды және BigQuery-ті Twitter-дегі деректермен әрекеттесу үшін негізгі ресурс ретінде ұсынуды шештік.

Мұнда Google BigQuery деректер қоймасының жоғары деңгейлі архитектурасының диаграммасы берілген.

Google BigQuery деректер талдауын қалай демократияландырды. 1 бөлім
Біз жергілікті Hadoop кластерлерінен деректерді Google Cloud Storage (GCS) жүйесіне ішкі Cloud Replicator құралы арқылы көшіреміз. Содан кейін біз Apache Airflow бағдарламасын қолданатын құбырларды жасау үшін қолданамыз.bq_load» GCS жүйесінен BigQuery ішіне деректерді жүктеу үшін. GCS жүйесінде Parket немесе Thrift-LZO деректер жиынын сұрау үшін Presto қолданбасын пайдаланамыз. BQ Blaster - HDFS Vertica және Thrift-LZO деректер жиынын BigQuery-ге жүктеуге арналған ішкі күйдіру құралы.

Келесі бөлімдерде біз пайдаланудың қарапайымдылығы, өнімділік, деректерді басқару, жүйенің денсаулығы және құны бойынша көзқарасымыз бен тәжірибемізді талқылаймыз.

Пайдаланудың қарапайымдылығы

Біз пайдаланушыларға BigQuery-ді бастау оңай екенін анықтадық, өйткені ол бағдарламалық құралды орнатуды қажет етпейді және пайдаланушылар оған интуитивті веб-интерфейс арқылы қол жеткізе алады. Дегенмен, пайдаланушылар кейбір GCP мүмкіндіктерімен және тұжырымдамаларымен, соның ішінде жобалар, деректер жиындары және кестелер сияқты ресурстармен таныс болуы керек. Біз пайдаланушыларға жұмысқа кірісуге көмектесу үшін оқулықтар мен оқулықтар әзірледік. Алынған негізгі түсінікпен пайдаланушыларға Data Studio бағдарламасында деректер жиынын шарлау, схема мен кесте деректерін қарау, қарапайым сұрауларды орындау және нәтижелерді визуализациялау оңай.

BigQuery жүйесінде деректерді енгізу мақсатымыз HDFS немесе GCS деректер жиынын бір рет басу арқылы үздіксіз жүктеуді қамтамасыз ету болды. қарастырдық Cloud Composer (Airflow арқылы басқарылады) бірақ оны "Домендік шектелген ортақ пайдалану" қауіпсіздік үлгісіне байланысты пайдалана алмады (бұл туралы толығырақ төмендегі Деректерді басқару бөлімінде). Біз BigQuery жүктеу тапсырмаларын ұйымдастыру үшін Google деректерді тасымалдау қызметін (DTS) пайдалану арқылы тәжірибе жасадық. DTS тез орнатылса да, ол тәуелділіктері бар құбырларды салуға икемді болмады. Альфа шығарылымымыз үшін біз GCE-де өз Apache Airflow ортасын жасадық және оны өндіріске және Vertica сияқты көбірек деректер көздеріне қолдау көрсету мүмкіндігіне дайындап жатырмыз.

Деректерді BigQuery-ге түрлендіру үшін пайдаланушылар жоспарланған сұрауларды пайдаланып қарапайым SQL деректер құбырларын жасайды. Тәуелділіктері бар күрделі көп сатылы құбырлар үшін біз өзіміздің Airflow құрылымын немесе Cloud Composer қолданбасын пайдалануды жоспарлап отырмыз. Бұлттық деректер ағыны.

өнімділік

BigQuery үлкен көлемдегі деректерді өңдейтін жалпы мақсаттағы SQL сұрауларына арналған. Ол транзакциялық дерекқор талап ететін төмен кідіріс, жоғары өткізу қабілеттілігі сұрауларына немесе орындайтын төмен кідіріс уақыт қатарын талдауға арналмаған. Apache Druid. Интерактивті аналитикалық сұраулар үшін біздің пайдаланушылар бір минуттан аз жауап беру уақытын күтеді. Біз осы үміттерді қанағаттандыру үшін BigQuery пайдалануды жобалауымыз керек болды. Пайдаланушыларымыз үшін болжамды өнімділікті қамтамасыз ету үшін біз жоба иелеріне олардың сұраулары үшін ең аз слоттарды резервтеуге мүмкіндік беретін, тіркелген ақы негізінде тұтынушыларға қолжетімді BigQuery функциясын қолдандық. Ұяшық BigQuery — SQL сұрауларын орындау үшін қажетті есептеу қуатының бірлігі.

Біз әрқайсысы шамамен 800 ТБ деректерді өңдейтін 1-ден астам сұрауды талдадық және орташа орындау уақыты 30 секунд екенін анықтадық. Біз сондай-ақ өнімділік әртүрлі жобалар мен тапсырмалардағы слотты пайдалануымызға өте тәуелді екенін білдік. Біз өндірісті пайдалану жағдайлары мен интерактивті талдау үшін өнімділікті сақтау үшін өндірістік және арнайы слот резервтерін нақты бөлуге тура келді. Бұл слоттарды брондау және жоба иерархияларына арналған дизайнымызға үлкен әсер етті.

Деректерді басқару, функционалдылық және жүйелердің құны туралы жақын күндері аударманың екінші бөлігінде айтатын боламыз, енді барлығын тегін тікелей вебинар, онда сіз курс туралы көбірек біле аласыз, сонымен қатар біздің сарапшы - Егор Матешукке (MaximaTelecom компаниясының деректер бойынша аға инженері) сұрақтар қоя аласыз.

Ары қарай оқу:

Ақпарат көзі: www.habr.com

пікір қалдыру