Hvad er Google BigQuery?
Google BigQuery er et data “warehouse” for data, der skal analyseres. Data fra forskellige datakilder kan sendes til Google BigQuery, hvor det kan forarbejdes for derefter at sendes tilbage eller til andre datakilder.
BigQuery er serverless, skalerbart, kost-effektivt og bruger moderne teknologier som ANSI SQL til at analysere helt op til petabytes (1.000.000 GB) af data med lynets hastighed.
Selvom Big Query er tiltænkt “Big Data”, kan det også bruges til mindre størrelser af data, som eksempelvis 100 rækker i et excel spreadsheet.
Lagringspladsen i Google BigQuery er ikke gratis, men har en rimelig prismodel. Der findes alternative til Google BigQuery, eksempelvis: Amazon Redshift, Snowflake, Microsoft Azure SQL Data Warehouse, Apache Hive, mv.
Det essentielle er ved Google BigQuery er, at det kan eksekvere komplekse queries (forespørgsler) af data på få sekunder, hvilket er hyper anvendeligt indenfor datadrevet digital marketing.
Key-features & fordelene ved Google BigQuery
Der er flere fordele ved at anvende Google BigQuery, og jeg vil her kort her gennemgå hvilke key-features Google BigQuery har. Derudover bliver BigQuery også anset som en platform, der kan konsolidere tonsvis af data på meget effektive og automatiserede metoder. Med andre ord er Google BigQuery en database platform på sterioder, med uendelige muligheder for custom datastrukturer og bearbejdningsprocesser. Det gør BigQuery yderst relevant og effektivt for alle typer af arbejde med data.
BigQuery Machine Learning
Tilbyder muligheden for at behandle data med Machine Learning modeller indenfor BigQuery.
Data Kryptering & Sikkerhed
Data i BigQuery bliver krypteret og integreret med Cloud IAM, der tilbyder et ekstra lag af sikkerhed.
Administreret Opbevaring
Så snart data er loaded til BigQuery, bliver det opbevaret sikkert og kontrolleret af BigQuery.
Hurtig SQL
Understøtter ANSI SQL med “sub-second” queries.
BigQuery GIS
Data kan opbevares med lokationsbaseret information
Fleksibel prisnings model
On demand eller flat-rate prismodel.
Serverless
Serverless betyder at Google BigQuery er cloudbaseret, der tilbyder dynamisk allokering af de ressourcer der bliver brugt og af deres opbevaringsplads. Google BigQuery anvender dog en server, men ikke i traditionelt forstand.
...Og mange flere key-features som kan findes på deres egen dokumentation.
Svaret på hvorfor du bør fravælge de sædvanlige digitale analyseværktøjer og bruge en cloud løsning som BigQuery istedet, kan findes ved de fordele platformen har:
- Ingen database administration
- Skalerbart data storage
- Hurtige imports og eksports
- Process af terabytes i sekunder
- Data lagring i både EU og US
- Kryptering af data
- Administration af adgangs kontrol af data (access control)
- To-trins verification
- IBM Watson
- Datamangel prævention
- Automatisk og nem integration mellem andre Google værktøjer
- Stort community og tilgængelige uddannelsesmæssige ressourcer
Og meget mere.
Hvad kan BigQuery bruges til?
- Små og store datasæt
- Samle data
- Konsolidere data
Små og store datasæt
BigQuery kan bruges til både små og store størrelser af datasæt, men er, som tidligere nævnt, reelt ment for “Big Data”. Derfor skal BigQuery ikke ses som et OLTP “Online Transaction Processing) database. Det vil nemlig stadig tage BigQuery et par sekunder at køre en simpel query på en tabel med størrelse af 100KB med cirka 400 rækker i et sheet. I en sådan mængde af data, kan ligeså godt opbevares i Google Sheets eller lign. Har du derimod flere sheets af data med flere tusinde rækker og kolonner, så vil BigQuery kunne analyserer denne data meget hurtigt og effektivt.
Konsolidering af data på tværs af kilder og platforme
Et andet og en stor mulighed ved Google BigQuery er dét, at kunne kombinere flere datakilder til ét samlet og kombineret datasæt, hvilket åbner op for mere komplekse og dybdegående analyser. Her kan BigQuery bruges som en “middle-man” imellem platforme og API integrationer.
Eksempel kan data blive indhentet fra flere forskellige kilder og platforme og opbevares i ét samlet BigQuery datasæt, med flere data-tabeller. Herfra kan data kombineres og sendes afsted til en 3. part, der evt kan analysere dataen.
Udover BigQuery eksisterende integrationer til andre API’er, såsom Datastudio eller Analytics, tilbyder platformen også en developer API. Det åbner op for at data kan anvendes i mange, forskellige formater såsom JSON, CSV mv., da det i Google BigQuery automatisk kan blive struktureret og opbevaret. Det giver uendelige måder hvorpå data kan sendes til BigQuery, hvilket er en utrolig feature og mulighed at have tilgængelig.
Et eksempel er at bygge en software, der kan hente data fra en 3. part API, sende det videre til BigQuery, som automatisk kan opdage et schema og skabe en datastruktur til det.
Herefter vil man kunne konsolidere data og evt. bestemme hvilke specifikke relationer mellem data, som der skal skabes, og gøre hvad man vil med resultatet. Det kunne være at bruge machine learning eller simpelthen at sende specifik data til en hel anden platform som visualisere data, såsom POWER BI, der automatisk kan integreres med BigQuery.
Disse muligheder er især interessant lige nu, hvor machine learning er under hastig udvikling og som er komplet afhængig af store mængder af data.
Google BigQuery kan bruges til at opbevare og behandle data, før det sendes videre.
Data til og fra BigQuery
Alle typer og formater af data kan reelt sendes til Google BigQuery enten via deres eksisterende API’er eller deres developer API.Derudover har platformen også integrationsmuligheder med Linkedin, Facebook, AWS og meget mere.
Der findes en håndfuld af software som kan håndterer data til BigQuery, men som Google Cloud Platform ikke tilbyder. F.eks. til SemRush, hvilket kan være meget dyrt, hvilket i så fald deres Developer API kan være med til at løse.
Sådan kommer du i gang med Google BigQuery API
Google BigQuery’s API understøtter diverse populære kodesprog hvori de har indbyggede funktioner, det kan bruges til at behandle data i deres database. Det kan være at sende, modificerer, eller bare at trække data ud. Sprogene der på nuværende stadie understøttes er C#, Go, Java, Node.js, PHP, Python og Ruby.
For at bruge Google BigQuerys API, skal du selvfølgelig have en Google Cloud konto, Med den opretter du et projekt, som du knytter BigQuery til og slår API’en til. Herefter skal du have en service konto tilknyttet og en service konto nøgle, som er en nøgle fil, der bruges til at godkende requests der bliver sendt til ens BigQuery database. Dette er selvfølgelig nødvendigt og krævende, og bliver brugt som et ekstra lag af sikkerhed, så andre ikke kan sende requests til ens database.
Til sidst skal du lave en “enviromental” variabel, der er tilknyttet “GOOGLE_APPLICATION_CREDENTIALS” som bruges til at identificerer og verificere op imod den nøgle, der er blevet genereret af BigQuery.
Læs mere detaljeret om denne proces hos Google Quickstart – https://cloud.google.com/bigquery/docs/quickstarts/quickstart-client-libraries
I KYNETIC bruger vi Python og PHP, hvor vi dog primært bruger PHP til de fleste tasks i forbindelse med BigQuery. Hvis du er interesseret i at se en detaljeret dokumentation på PHP og BigQuery, og de funktioner og methods der er tilgængelig, kan det findes på Google Cloud Client Libary – https://googleapis.github.io/google-cloud-php/#/docs/google-cloud/v0.153.0/bigquery/bigqueryclient og GitHub – https://github.com/googleapis/google-cloud-php-bigquery
Machine Learning i BigQuery
BigQuery ML tilladder os at skabe og eksekverer machine learning modeller i BigQuery ved brug af SQl queries. Det er funktionelt tilgængelig når du bruger:
- Google Cloud Console
- bq kommando-linjen
- BigQuery REST API
- Nogle eksterne værktøjer såsom Jupyter notebook eller andre business intelligence platform som POWER BI
Understøttede Machine Learning modeller
BigQuery understøtter flere forskellige machine learnings modeller. Et eksempelvis bliver linear regression brugt i forbindelse med forecasting, hvor mængden af salg på et givent produkt kan forudsiges på baggrund af eksisterende data.
Et andet eksempel på en ML model er binary logistic regression til klassifikation, der eksempelvis bruges til at vurdere om en kunde vil lave et køb eller ej.
TensorFlow model importing – TensorFlow er eksempelvis et ekstern open-souce software bibliotek for machine learning, som har sin egen deep neural network til forskellige scenarier. Derudover findes der mange flere forskellige modeller.
Hvis du er nysgerrig på læse om, hvordan vi i KYNETIC arbejder med fx forecasting science, har vi både en side dedikeret til både Data Science og Marketing Science. Samt et blogindlæg, hvor vi beskriver 5 værdifulde Data Science analyser i digital marketing.
Nogle af fordelene ved at bruge BigQuery ML er:
- BigQuery ML demokratiserere brugen af ML. Det gør det ved at bemyndige dataanalytikere til at bygge modeller fra eksisterende BI’s, hvilket betyder at udover at deres machine learning modeller bliver stærkere og mere beriget af utrolig meget data, så bliver de også beriget efter effektivitet. Det gør at modellerne altid tager udgangspunkt i best practices.
- Der er ikke behov for at bruge Python eller Java til at bygge et helt framework til Machine Learning. De tilgængelige modeller er allerede trænet af millionvis af datasets og de kan tilgås med SQL, hvilket i sig selv er en kæmpe fordel.
- Machine Learning foregår i BigQuery, hvilket gør processen langt mere effektiv, hurtig og simpel. Du behøver ikke at eksportere data til en anden, ekstern platform for at aktiverer machine learning, for derefter at sende data tilbage.
Eksempel: Machine Learning i BigQuery
I dette eksempel, bruger vi sample-data fra BigQuery, hvor vi kører en af deres machine learning algoritme modeller til at lave en forudsigelse af hvordan udviklingen af samlede køb vil se ud, over tid pr. land. Vi kan også se detaljeret information om hvor stor en precision modellen mener, at denne forudsigelse har. Jo flere gange og jo mere data man har til rådighed, jo mere præcis bliver modellen til at lave forudsigelserne.
BigQuery har selvfølgelig forskellige machine learning modeller, som man kan finde i deres dokumentation. Valget af modellen er baseret på den data man har, og det resultat man vil opnå.