BigQuery – mi ez és hogyan kezdjük el használni? [Tutorial]

11/06/2020

BigQuery – mi ez és hogyan kezdjük el használni?

Az adat korunk aranya – tudják ezt a fejlesztésre összpontosító vállalatok és szervezetek is. A tudatos vállalkozások elemzik a meglévő folyamatokat, és változtatásokat, fejlesztéseket vezetnek be a számok alapján. Némelyikük tovább megy – felhasználva a technológia kínálta lehetőségeket, megjósolják a trendeket, a piacon várható változásokat és a még meg nem hozott üzleti döntések hatásait.

Az üzleti tevékenység növekedésével az adatkészletek növekednek – a gigabájtból terabájt vagy petabájt lesz. Egy elemzési eszköz fenntartásának és a jelentéskészítés rövid időtartamának megfelelő szintű fenntartása érdekében biztosnak kell lennünk benne, hogy a megfelelő technológiát választjuk. A BigQuery – a BigData-elemzések elvégzésének szentelt szolgáltatás, amely számos elemzési eszközt, köztük a népszerű Google Analytics szolgáltatást is tartalmazza, és ezzel felbecsülhetetlen értékű segítséget nyújt a cégek számára.

Mi a BigQuery a Google-tól?

Skálázható felhő adattárház. Lehetővé teszi a lekérdezések millióinak kezelését és petabájtnyi adat fejlett elemzését az SQL-ben anélkül, hogy aggódnia kellene a fejlett infrastruktúra költséges karbantartása miatt.

A BigQuery az egyik a számos programnak, amelyet elérhetsz a Google Cloud Platformon (GCP). Az adatok tárolása és elemzése a felhőben történik, a GCP stabil, biztonságos és skálázható infrastruktúrájában. Itt tudhatsz meg többet arról, hogy mi az a Google Cloud Platform, és hogyan támogatja a vállalkozásokat.).

A szolgáltatás segítségével létrehozhat saját elemző eszközt, amelyet a fejlődés, folyamatok vagy folyamatban lévő események nyomon követésére használnak – például a vállalaton belül vagy annak környékén. A gépi tanulással (ML) kombinálva lehetővé teszi egy olyan rendszer felépítését, amely például megjósolja a különböző tényezők előfordulását és figyelembe veszi azok lehetséges hatásait. A BigQuery segíthet a meglévő BigData elemző rendszer teljesítményének és fenntartása költségeinek optimalizálásában is.

Szerver nélküli technológia

A BigQuery egy felhőalapú adattárház. A Google Cloud Platform szolgáltatásainak használatával a vállalkozása fejlesztésére és az elemzések legjobb kihasználására koncentrálhat. Nem kell további időt és költséget fordítani az infrastruktúra karbantartására, a szerver biztonságának megfelelő szintű frissítésére vagy biztosítására.

Azonnali elemzés

A terabájtos adatok feldolgozása a BigQuery segítségével másodperceket vesz csak igénybe, íg egy petabájt feldolgozása körülbelül 3 perc. A raktárak (warehouse) több tucatszor gyorsabban dolgoznak fel nagy adatsorokat, mint az adatbázis-rendszerek. Ennek eredményeként az elemzés akár valós időben is elvégezhető, és a változások „élőben” megfigyelhetők.

Rugalmas költségek

A BigQuery szolgáltatás költségei alkalmazkodnak a jelenlegi üzleti követelményekhez. Csakúgy, mint GCP esetében, itt is a felhasználás alapján fizet. Az adattárolás (data storage) 20 USD/TB. Ha az adatokat 90 vagy több napig nem dolgozzák fel, a csomag hosszú távú tárolásra vált, és a szolgáltatás ára 50%-kal csökken. Az adatfeldolgozás 5 USD/TB-ba kerül, de minden hónap első terabájtja ingyenes.

Ez a díjfizetési módszer azt jelenti, hogy a TCO (Total Cost of Ownership) három év alatt átlagosan 30%-kal alacsonyabb, mint más BigData elemzési megoldások esetében.

Nincs beavatkozás a forráskódba

A BigQuery használatához nincs szükség nagy változtatásokra vagy a forráskód átírására. Ez annak köszönhető, hogy a BigQuery támogatja az ANSI SQL: 2011 szabványt, és ingyen biztosítja az ODBC és a JDBC programozási felületeket.

Automatikus biztonsági mentés

Az eszköz automatikus biztonsági mentést hajt végre, és a változások előzményeit 7 napig tárolja. Ez lehetővé teszi az eredmények egyszerű összehasonlítását az előző időszakkal vagy az adatok visszaállítását.

Adatok elemzése különböző forrásokból

A BigQuery segítségével különböző forrásokból származó adatokat elemezhet – olyanokból, mint a Google Marketing Platform, a Google Analytics, a YouTube és a külső SaaS-alkalmazások százaiból. Az adatok a GCP-n kívüli infrastruktúra-megoldásokból is továbbíthatók a BigQuery-be.

A gépi tanulás (ML) támogatása

Az elérhető funkciók egyike a BigQuery ML, amelynek feladata a gépi tanulási képességek létrehozása és fejlesztése szabványos SQL lekérdezések segítségével. A BigQuery ML növeli a gépi tanulásra képes termékek fejlesztésének sebességét, miközben csökkenti a forráskód írására és az adatok hordozhatóságára vonatkozó követelményeket.

Üzleti elemzés (BI)

A BigQuery kiváló eszköz üzleti elemzések (BI – business intelligence) készítéséhez. A szolgáltatás lehetővé teszi hatalmas adatkészletek elemzését és kiterjedt jelentések készítését másodpercek alatt. Támogatja az „ad hoc” jelentések létrehozását is – vagyis olyan jelentéseket, amelyek egy bizonyos szelet adatot tartalmaznak, és az összefoglaló elkészítéséhez nem szükséges az analitikai vagy az informatikai részleg bevonása.

Mindkét esetben a jelentéseket olyan adatmegjelenítő eszközökkel lehet bemutatni, mint a Google Data Studio, a Looker vagy a Tableau.

A BigQuery használata – példa:

me néhány példa arra, hogyan használják jól ismert vállalatok a BigQuery-t:

  • A UPS minden nap több százezer küldeményről gyűjt be adatokat – ami tartalmazza a súlyukat, a méretüket és a helyüket. A gépi tanulás és az adatelemzés lehetőségének köszönhetően a vállalat hibátlanul képes meghatározni, hogyan osszák be a kisteherautókat vagy konténereket a hatékonyság lehető legnagyobb növelése érdekében. A rendszer lehetővé teszi a megnövekedett forgalom időszakaira való felkészülést is – például karácsony körül;
  • A 20th Century Fox a Google Cloud szolgáltatásait használja, beleértve a BigQuery-t és a gépi tanulást. Nézői preferenciamintákat hoz létre, és elemzi a filmelőzeteseket, hogy meghatározza az adott produkció sikerének esélyét;
  • A Safari Books Online milliónyi felhasználóval rendelkező könyvtár, több mint 30.000 könyvvel és filmmel. A Safari Books Online a BigQuery használatával kezeli a már meglévő adatokat, és azok alapján ajánl termékeket az olvasóknak;
  • A Dow Jones (DJIA) az egyik legnagyobb tőzsdeindex, amely olyan vállalatokat tartalmaz, mint az Apple, az Amazon és a Boeing. A Dow a BigQuery és az ML segítségével építi fel az adat-, hír- és elemzési platformot (DNA), amely lehetővé teszi a vállalatok számára az események hatásainak elemzését – például milyen tőzsdei változások okozott az Irma hurrikán;
  • A Spotify a BigQuery segítségével éri el, hogy a lejátszó gomb megnyomása után a felhasználó egy pillanatra belehallgathat a számba. Nem lenne ebben semmi szokatlan, ha nem tudnánk, hogy a platformot több mint 200 millió felhasználó használja, és naponta 40 000 új dalt és felvételt adnak hozzá.

Hogyan kezdjünk hozzá? Lépésről lépésre

A BigQuery használatának megkezdéséhez Google Cloud Platform fiókkal kell rendelkeznünk. Emellett értenünk kell az SQL-hez.

Lépj be az alábbi oldalra Google konzol.

Válaszd ki a projektet, amin dolgozni fogsz. A projektek listája a Google Cloud Platform fejléc mellett található legördülő menüben található

jak zaczac z BigQuery krok 1

A projekt kiválasztása után válaszd a Cloudshellt a jobb felső sarokban.

jak zaczac z BigQuery krok 2

Ekkor ez a nézet jelenik meg:

jak zaczac z BigQuery krok 3

Az adatbázis áttekintéséhez és az általános információk (séma, sorok száma, méret) megtekintéséhez használd az alábbi parancsot:

bq show bigquery-public-data:samples.shakespeare

Így fog kinézni a parancsra adott válasz:

jak zaczac z BigQuery krok 4

A bq parancsokban a –use_leagcy_sql jelzőt fogjuk használni – ez a standard SQL-t állítja be a lekérdezés nyelveként.

A lekérdezés érvényesítéséhez és ellenőrzéséhez csak add hozzá a dry_run flaget. Itt egy példa az ezzel a flaggel feltett kérdésre:

bq query --use_legacy_sql=false --dry_run \
'SELECT
word
FROM
`bigquery-public-data`.samples.shakespeare
LIMIT 5'

jak zaczac z BigQuery krok 5

Amennyiben az adatbázisba küldött kérdés megfelelő, akkor meg lehet tekinteni a választ rá az alábbi faggel: –dry_run

bq query --use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data`.samples.shakespeare
LIMIT 5'

Így néz a válasz egy fenti típusú kérdésre:

jak zaczac z BigQuery krok 6

Ahhoz, hogy megkülönböztessük az adatokat a rekordoktól, használhatjuk a where klauzulát, ami konkrét értékek, szabályok vagy szabályos kifejezések között szelektál. Ha az adatbázisból csak olyan rekordokat akarunk elkülöníteni, amely tartalmazza a  raising szót, akkor az alábbi parancsot kell használnunk.

bq query --use_legacy_sql=false --dry_run \
'SELECT
word
FROM
`bigquery-public-data`.samples.shakespeare
WHERE
word = "raising"
LIMIT 5'

Először végre kell hajtani a kérdés érvényességi vizsgálatát.

jak zaczac z BigQuery krok 7

Ezután futtatni az alábbi parancsot –dry_run nélkül:

bq query --use_legacy_sql=false \
'SELECT
word
FROM
`bigquery-public-data`.samples.shakespeare
WHERE
word = "raising"
LIMIT 5'

jak zaczac z BigQuery krok 8

Ha ellenőrizni szeretnénk, hogy hány ilyen rekord van az adatbázisban, akkor használjuk az  összesítési függvényt COUNT(az a rekord, amelyet meg akarunk számlálni). A lekérdezésnek így kell kinéznie:

bq query --use_legacy_sql=false \
'SELECT
COUNT(word) as num_of_words
FROM
`bigquery-public-data`.samples.shakespeare
WHERE
word = "raising"’

 

Az egyes táblázatokhoz saját nevet rendelhetünk. Ebben az esetben van egy nevünk, amely leírja, hogy mit összesítettek egy adott oszlopban. A lekérdezés eredménye így néz ki:

 

jak zaczac z BigQuery krok 9

Tegyük fel, hogy meg akarunk találni minden olyan elemet, amely a raisin szót tartalmazza. Ebben az esetben a LIKE kulcsszót kell használni, hogy az adott kulcs alapján tudjunk keresni. 

Ha a % jelet a keresett szó elé tesszük, akkor a rendszer az előtaggal, pl. dispraisin is figyelembe veszi az eredményeket. Ha mindkét oldalon előjelet adunk hozzá, például %raisin%, akkor elő- és utótaggal egyaránt elátott eredményeket is kapunk, például pl. dispraisin.

Ha egynél több oszlopunk van összesített függvénnyel, akkor a GROUP BY paranccsal kell jeleznünk, hogy mely oszlopok szerint szeretnénk csoportosítani a sorokat.

bq query --use_legacy_sql=false \
'SELECT
word,
COUNT(word_count) AS count
FROM
`bigquery-public-data`.samples.shakespeare
WHERE
word LIKE "%raisin%"
GROUP BY
word'

A kérdésre adott eredmény így néz ki:

jak zaczac z BigQuery krok 10

Győződj meg GCP és a BigQuery által nyújtott lehetőségekről

A BigQueryben rejlő potenciálról a gyakorlatban győződhetünk meg a legjobban. Ha szeretnéd megtudni, hogy milyen lehetőségeket kínál a te és az üzleted számára a Google Cloud (beleértve az elemzési szolgáltatásokat), akkor vedd fel a kapcsolatot egy hivatalos Google Cloud Premier Partnerrel

500 dolláros utalványt kapsz a Google Cloud Platformon végzett első tevékenységeidhez, és a Fly On The Cloud szakemberei segítenek felfedezni a BigQuery lehetőségeit.