Jinsi BigQuery ya Google ilivyochanganua data kidemokrasia. Sehemu 1

Habari, Habr! Kujiandikisha kwa mtiririko mpya wa kozi kumefunguliwa sasa hivi katika OTUS Mhandisi wa Data. Kwa kutarajia mwanzo wa kozi, tumekuandalia jadi tafsiri ya nyenzo za kuvutia kwako.

Kila siku, zaidi ya watu milioni mia moja hutembelea Twitter ili kujua kinachoendelea ulimwenguni na kuyajadili. Kila tweet na kila kitendo kingine cha mtumiaji hutoa tukio ambalo linapatikana kwa uchambuzi wa data wa ndani wa Twitter. Mamia ya wafanyakazi huchanganua na kuona data hii taswira, na kuboresha matumizi yao ni kipaumbele cha juu kwa timu ya Twitter Data Platform.

Tunaamini kwamba watumiaji walio na ujuzi mbalimbali wa kiufundi wanapaswa kuwa na uwezo wa kugundua data na kufikia zana zinazofanya kazi vizuri za uchanganuzi na taswira kulingana na SQL. Hili lingeruhusu kundi jipya la watumiaji wasio na ufundi zaidi, wakiwemo wachanganuzi wa data na wasimamizi wa bidhaa, kupata maarifa kutoka kwa data, kuwaruhusu kuelewa na kutumia vyema uwezo wa Twitter. Hivi ndivyo tunavyoweka kidemokrasia uchanganuzi wa data kwenye Twitter.

Kadiri zana zetu na uwezo wa uchanganuzi wa data wa ndani unavyoboreshwa, tumeona Twitter ikiboreka. Hata hivyo, bado kuna nafasi ya kuboresha. Zana za sasa kama vile Scalding zinahitaji matumizi ya programu. Zana za uchanganuzi zinazotegemea SQL kama vile Presto na Vertica zina masuala ya utendaji kwa kiwango kikubwa. Pia tuna tatizo la kusambaza data kwenye mifumo mingi bila kuifikia mara kwa mara.

Mwaka jana tulitangaza ushirikiano mpya na Google, ambamo tunahamisha sehemu zetu miundombinu ya data kwenye Google Cloud Platform (GCP). Tumehitimisha kuwa zana za Wingu la Google Big Data inaweza kutusaidia na mipango yetu ya kuhalalisha uchanganuzi, taswira, na kujifunza kwa mashine kwenye Twitter:

  • BigQuery: ghala la data la biashara lenye injini ya SQL dremel, ambayo ni maarufu kwa kasi yake, unyenyekevu na kukabiliana nayo kujifunza mashine.
  • Studio ya Data: zana kubwa ya kuona data yenye vipengele vya ushirikiano kama vile Hati za Google.

Katika makala hii, utajifunza kuhusu uzoefu wetu na zana hizi: kile tulichofanya, kile tulichojifunza, na kile tutakachofanya baadaye. Sasa tutazingatia uchambuzi wa kundi na mwingiliano. Tutajadili uchanganuzi wa wakati halisi katika makala inayofuata.

Historia ya Maduka ya Data ya Twitter

Kabla ya kuingia kwenye BigQuery, inafaa kusimulia kwa ufupi historia ya kuhifadhi data ya Twitter. Mnamo 2011, uchambuzi wa data wa Twitter ulifanyika Vertica na Hadoop. Tulitumia Nguruwe kutengeneza MapPunguza kazi za Hadoop. Mnamo 2012, tulibadilisha Nguruwe na kuweka Scalding, ambayo ilikuwa na API ya Scala yenye manufaa kama vile uwezo wa kuunda mabomba changamano na urahisi wa majaribio. Hata hivyo, kwa wachanganuzi wengi wa data na wasimamizi wa bidhaa ambao walikuwa wastarehe zaidi kufanya kazi na SQL, ilikuwa njia ya kujifunza yenye mwinuko. Karibu 2016, tulianza kutumia Presto kama kiolesura cha SQL kwa data ya Hadoop. Spark ilitoa kiolesura cha Python, ambacho kinaifanya kuwa chaguo zuri kwa sayansi ya data ya dharula na ujifunzaji wa mashine.

Tangu 2018, tumetumia zana zifuatazo kwa uchanganuzi na taswira ya data:

  • Uchomaji moto kwa visafirishaji vya uzalishaji
  • Scalding na Spark kwa uchanganuzi wa data wa dharula na ujifunzaji wa mashine
  • Vertica na Presto kwa uchambuzi wa dharula na mwingiliano wa SQL
  • Druid kwa ufikiaji wa chini wa mwingiliano, uchunguzi na latency ya chini kwa vipimo vya mfululizo wa saa
  • Tableau, Zeppelin na Pivot kwa taswira ya data

Tuligundua kuwa ingawa zana hizi zina uwezo mkubwa sana, tulikuwa na ugumu wa kufanya uwezo huu upatikane kwa hadhira pana kwenye Twitter. Kwa kupanua mfumo wetu na Google Cloud, tunaangazia kurahisisha zana zetu za uchanganuzi kwa Twitter yote.

Ghala la Data la BigQuery la Google

Timu kadhaa kwenye Twitter tayari zimejumuisha BigQuery katika baadhi ya mabomba yao ya uzalishaji. Kwa kutumia ujuzi wao, tulianza kutathmini uwezo wa BigQuery kwa matukio yote ya utumiaji wa Twitter. Lengo letu lilikuwa kutoa BigQuery kwa kampuni nzima na kuisawazisha na kuiunga mkono ndani ya zana ya Mfumo wa Data. Hii ilikuwa ngumu kwa sababu nyingi. Tulihitaji kuunda muundo msingi wa kumeza data nyingi kwa uhakika, kusaidia usimamizi wa data wa kampuni nzima, kuhakikisha udhibiti unaofaa wa ufikiaji na kuhakikisha faragha ya wateja. Pia tulilazimika kuunda mifumo ya ugawaji wa rasilimali, ufuatiliaji na urejeshaji malipo ili timu ziweze kutumia BigQuery ipasavyo.

Mnamo Novemba 2018, tulitoa toleo la alpha la kampuni nzima la BigQuery na Studio ya Data. Tumewapa wafanyikazi wa Twitter baadhi ya lahajedwali zetu zinazotumiwa sana na data ya kibinafsi iliyosafishwa. BigQuery imetumiwa na zaidi ya watumiaji 250 kutoka kwa timu mbalimbali ikiwa ni pamoja na uhandisi, fedha na masoko. Hivi majuzi, walikuwa wakiendesha takriban maombi 8k, wakichakata takriban PB 100 kwa mwezi, bila kuhesabu maombi yaliyoratibiwa. Baada ya kupokea maoni chanya, tuliamua kusonga mbele na kutoa BigQuery kama nyenzo msingi ya kuingiliana na data kwenye Twitter.

Huu hapa ni mchoro wa kiwango cha juu wa usanifu wetu wa ghala la data la Google BigQuery.

Jinsi BigQuery ya Google ilivyochanganua data kidemokrasia. Sehemu 1
Tunanakili data kutoka kwa vikundi vya Hadoop kwenye majengo hadi Hifadhi ya Wingu la Google (GCS) kwa kutumia zana ya ndani ya Kinakilisho cha Wingu. Kisha tunatumia Apache Airflow kuunda bomba zinazotumia "bq_mzigoΒ»kupakia data kutoka kwa GCS hadi BigQuery. Tunatumia Presto kuuliza seti za data za Parquet au Thrift-LZO katika GCS. BQ Blaster ni zana ya ndani ya Kuongeza kasi ya kupakia seti za data za HDFS Vertica na Thrift-LZO kwenye BigQuery.

Katika sehemu zifuatazo, tunajadili mbinu na utaalam wetu katika maeneo ya urahisi wa kutumia, utendaji, usimamizi wa data, afya ya mfumo na gharama.

Urahisi wa matumizi

Tuligundua kuwa ilikuwa rahisi kwa watumiaji kuanza kutumia BigQuery kwa sababu haikuhitaji usakinishaji wa programu na watumiaji wangeweza kuipata kupitia kiolesura angavu cha wavuti. Hata hivyo, watumiaji walihitaji kufahamu baadhi ya vipengele na dhana za GCP, ikijumuisha rasilimali kama vile miradi, seti za data na majedwali. Tumetengeneza nyenzo za kielimu na mafunzo ili kuwasaidia watumiaji kuanza. Kwa uelewa wa kimsingi waliopata, watumiaji walipata urahisi wa kusogeza seti za data, kutazama taratibu na data ya jedwali, kuuliza maswali rahisi na kuona matokeo katika Studio ya Data.

Lengo letu la kuingiza data kwenye BigQuery lilikuwa kuwezesha upakiaji bila mshono wa seti za data za HDFS au GCS kwa mbofyo mmoja. Tulizingatia Mtunzi wa Wingu (inayodhibitiwa na Airflow) lakini haikuweza kuitumia kwa sababu ya mtindo wetu wa usalama wa Kushiriki Mipaka yenye Mipaka ya Kikoa (zaidi kuhusu hili katika sehemu ya Usimamizi wa Data iliyo hapa chini). Tulijaribu kutumia Huduma ya Kuhamisha Data ya Google (DTS) ili kupanga kazi za BigQuery. Ingawa DTS ilikuwa ya haraka kusanidi, haikuwa rahisi kwa ujenzi wa mabomba yenye utegemezi. Kwa toleo letu la alpha, tumeunda mfumo wetu wenyewe wa Apache Airflow katika GCE na tunaitayarisha ili kufanya kazi katika uzalishaji na kuweza kutumia vyanzo zaidi vya data kama vile Vertica.

Ili kubadilisha data kuwa BigQuery, watumiaji huunda mabomba rahisi ya data ya SQL kwa kutumia maswali yaliyoratibiwa. Kwa mabomba changamano ya hatua nyingi na tegemezi, tunapanga kutumia mfumo wetu wenyewe wa Airflow au Cloud Composer pamoja na Utiririshaji wa data wa Wingu.

Uzalishaji

BigQuery imeundwa kwa madhumuni ya jumla ya hoja za SQL ambazo huchakata kiasi kikubwa cha data. Haikusudii kusubiri muda wa chini, hoja za juu za upitishaji zinazohitajika na hifadhidata ya shughuli, au uchanganuzi wa mfululizo wa muda wa kusubiri unaotekelezwa. Apache Druid. Kwa maswali shirikishi ya uchanganuzi, watumiaji wetu wanatarajia nyakati za majibu za chini ya dakika moja. Ilitubidi kubuni matumizi yetu ya BigQuery ili kukidhi matarajio haya. Ili kutoa utendakazi unaotabirika kwa watumiaji wetu, tulitumia utendakazi wa BigQuery, unaopatikana kwa wateja kwa misingi ya ada ya kawaida ambayo inaruhusu wamiliki wa mradi kuhifadhi nafasi za chini zaidi kwa hoja zao. Yanayopangwa BigQuery ni kitengo cha nguvu ya kompyuta inayohitajika kutekeleza hoja za SQL.

Tulichanganua zaidi ya hoja 800 zinazochakata takriban TB 1 ya data kila moja na tukagundua kuwa muda wa wastani wa utekelezaji ulikuwa sekunde 30. Pia tulijifunza kuwa utendakazi unategemea sana matumizi ya nafasi yetu katika miradi na kazi tofauti. Ilitubidi kubainisha kwa uwazi akiba yetu ya uzalishaji na yanayopangwa ili kudumisha utendaji kwa matukio ya matumizi ya uzalishaji na uchanganuzi wa mtandaoni. Hii iliathiri sana muundo wetu wa uwekaji nafasi wa nafasi na uongozi wa mradi.

Tutazungumza kuhusu usimamizi wa data, utendakazi na gharama ya mifumo katika siku zijazo katika sehemu ya pili ya tafsiri, lakini sasa tunaalika kila mtu mtandao wa moja kwa moja wa bure, wakati ambao utaweza kujifunza kwa undani kuhusu kozi, na pia kuuliza maswali kwa mtaalam wetu - Egor Mateshuk (Mhandisi Mkuu wa Data, MaximaTelecom).

Soma zaidi:

Chanzo: mapenzi.com

Kuongeza maoni