| Ta funkcija je na voljo v storitvi Analytics 360, ki je del storitve Google Marketing Platform. Preberite več o storitvi Google Marketing Platform. |
V tem članku so opisani praktični primeri sestavljanja poizvedb iz podatkov iz storitve Google Analytics, ki jih izvozite v BigQuery. Na voljo imate vzorčni nabor podatkov, na katerem lahko vadite nekatere poizvedbe, opisane v tem članku.
V tem članku:- Optimizacija poizvedb
- Nasveti in najboljši postopki
- Primeri osnovnih poizvedb
- Skupna vrednost [meritve] na [razsežnost]
- Povprečna stopnja obiskov samo prve strani na [razsežnost]
- Povprečno število ogledov spletne strani izdelka glede na vrsto kupca
- Povprečno število transakcij na kupca
- Povprečni znesek, porabljen na sejo
- Zaporedje zadetkov (analiza poti)
- Več razsežnosti po meri na ravni zadetka ali seje
- Napredni primeri poizvedb
- Izdelki, ki so jih kupile stranke, ki so kupile izdelek A (klasična e-trgovina)
- Izdelki, ki so jih kupile stranke, ki so kupile izdelek A (izboljšana e-trgovina)
- Povprečno število uporabniških interakcij pred nakupom
- Odstotek zaloge, prodane na izdelek
- Dobičkonosnost posameznega izdelka
- Resnična dobičkonosnost posameznega izdelka
Optimizacija poizvedb
Vsaka poizvedba, ki jo izvedete, porablja vašo mesečno kvoto za obdelavo podatkov. Če izberete nebistvena polja, povečate količino podatkov, ki morajo biti obdelani, posledično pa porabite več mesečne dovoljene količine, kot bi bilo treba. Z optimiziranimi poizvedbami varčno porabljate mesečno kvoto za obdelavo podatkov.
Več o določanju cen.
Izberite le tisto, kar potrebujete
Ko oblikujete poizvedbo, izberite ustrezna polja znotraj stavka SELECT. Če ne kličete nebistvenih polj, zmanjšate količino podatkov in čas, potreben za obdelavo poizvedbe.
Primer: izogibajte se uporabi operatorja v obliki nadomestnega znaka
| Slaba oblika: Uporaba operatorja v obliki nadomestnega znaka |
|---|
SELECT * |
| Boljša oblika: Uporaba imen polj, da se izognete nepotrebni obdelavi |
|---|
SELECT polje 1, polje 2 |
Dovolite predpomnjenje
Kjer je mogoče, se izognite temu, da bi funkcije uporabili kot polja. Funkcije (na primer NOW() ali TODAY() ) vrnejo rezultate s spremenljivkami, zato poizvedbe ne morejo biti predpomnjene, kar posledično onemogoča, da bi bile hitreje vrnjene. Namesto tega uporabite konkretne ure in datume.
Uporabite vmesne tabele za pogosto uporabljene podpoizvedbe
Če ugotovite, da večkrat uporabite specifično poizvedbo kot podpoizvedbo, jo lahko shranite kot vmesno tabelo tako, da kliknete možnost Shrani kot tabelo nad rezultati poizvedbe. Nato se lahko sklicujete na to tabelo v odseku FROM poizvedbe, kar bo zmanjšalo tako količino podatkov, ki morajo biti obdelani, kot tudi čas, potreben za obdelavo.
| uporaba vmesne tabele |
|---|
SELECT polje 1, polje 2 |
Odpravljanje napak v poizvedbah
BigQuery odpravlja napake v kodi, medtem ko jo pišete. V oknu za pisanje je odpravljanje napak prikazano tik pod poizvedbo. Odpravljanje napak je na voljo tudi prek API-ja z zastavico dryRun.
Veljavne poizvedbe imajo zelen indikator. S klikom tega indikatorja prikažete količino podatkov, ki jo poizvedba obdela. Ta funkcija vam omogoča, da optimizirate podatke, preden zaženete poizvedbo, in se tako izognete nepotrebni obdelavi podatkov.
Neveljavne poizvedbe imajo rdeč indikator. S klikom tega indikatorja prikažete podatke o napaki in lahko poiščete vrstico in stolpec, kjer je prišlo do napake. V spodnjem primeru lahko vidite, da je stavek GROUP BY prazen, in napaka je locirana.
Nasveti in najboljši postopki
Uporaba vzorčnega nabora podatkov
Naslednji primeri uporabljajo vzorčni nabor podatkov za Google Analytics.
Če želite poizvedbe uporabiti v lastnih podatkih, morate imena projektov in naborov podatkov v primerih samo zamenjati z lastnimi imeni projektov in naborov podatkov.
Primerjava uporabe standardnega jezika in starejše različice jezika SQL
BigQuery podpira dve narečji jezika SQL:
V članku Selitev na standardni SQL so opisane razlike med narečjema.
Standardni SQL je zdaj prednostno narečje SQL za izvajanje poizvedb za podatke, shranjene v storitvi BigQuery.
Več podatkov o omogočanju standardnega jezika SQL v uporabniškem vmesniku, CLI-ju ali API-ju BigQuery (ali drugem vmesniku, ki ga uporabljate) najdete v članku Omogočanje standardnega jezika SQL.
Najlažje začnete tako, da na vrhu poizvedb v standardnem jeziku SQL vključite komentar »standardSQL«, kot je prikazano v naslednjih primerih.
Pri jeziku SQL starejše različice se podatki storitve Google Analytics 360 vsak dan posredujejo v novo tabelo. Če želite izvesti poizvedbo za več tabel hkrati, lahko imena tabel ločite z vejico, uporabite funkcijo nadomestnih znakov za tabelo TABLE_DATE_RANGE ali uporabite več funkcij TABLE_DATE_RANGE, ločenih z vejico, kot je prikazano v naslednjih primerih.
Izvajanje poizvedb za več tabel
V naslednjih primerih so prikazane poizvedbe za enake podatke v standardnem jeziku SQL in jeziku SQL starejše različice.
3 dnevi
Standardni SQL
| 3 dnevi; uporaba funkcije UNION ALL |
|---|
#standardSQL |
SQL starejše različice
| 3 dnevi; uporaba imen tabel, ločenih z vejico |
|---|
SELECT |
Zadnjih 1095 dni
Standardni SQL
| Zadnjih 1095 dni; uporaba funkcije _TABLE_SUFFIX |
|---|
#standardSQL |
SQL starejše različice
| Zadnjih 1095 dni; uporaba funkcije TABLE_DATE_RANGE |
|---|
SELECT |
Zadnjih 36 mesecev
Standardni SQL
| Zadnjih 36 mesecev; uporaba funkcije _TABLE_SUFFIX |
|---|
#standardSQL |
SQL starejše različice
| Zadnjih 36 mesecev; uporaba funkcije TABLE_DATE_RANGE |
|---|
SELECT |
Zadnja 3 leta
Standardni SQL
| Zadnja 3 leta; uporaba funkcije _TABLE_SUFFIX |
|---|
#standardSQL |
SQL starejše različice
| Zadnja 3 leta; uporaba funkcije TABLE_DATE_RANGE |
|---|
SELECT |
Določeno časovno obdobje
Standardni SQL
| Določeno časovno obdobje; uporaba funkcije _TABLE_SUFFIX |
|---|
#standardSQL |
SQL starejše različice
| Določeno časovno obdobje; uporaba funkcije TABLE_DATE_RANGE |
|---|
SELECT |
Podatki zadnjih 3 let in današnjega dne (znotraj dneva)
Standardni SQL
| Podatki zadnjih 3 let in današnjega dne (znotraj dneva); uporaba funkcij UNION ALL in _TABLE_SUFFIX |
|---|
| Opomba: Ta vzorčna poizvedba ne bo delovala v javnem naboru podatkov Google Analytics, ker tabela znotraj dneva trenutno ne obstaja. |
#standardSQL |
SQL starejše različice
| Podatki zadnjih 3 let in današnjega dne (znotraj dneva); uporaba več funkcij TABLE_DATE_RANGE |
|---|
| Opomba: Ta vzorčna poizvedba ne bo delovala v javnem naboru podatkov Google Analytics, ker tabela znotraj dneva trenutno ne obstaja. |
SELECT |
Primeri osnovnih poizvedb
V tem poglavju je pojasnjeno, kako izdelate osnovne poizvedbe z uporabo meritev in razsežnosti iz vzorčnih podatkov iz storitve Google Analytics.
Skupna vrednost [meritve] na [razsežnost]?
Spodaj so vzorčni skripti za vprašanje, ki se glasi: Kolikšno je skupno število transakcij, ki so bile ustvarjene za posamezen brskalnik naprave julija 2017?
Standardni SQL
| Skupaj transakcij za posamezen brskalnik naprave julija 2017 |
|---|
#standardSQL |
SQL starejše različice
| Skupaj transakcij za posamezen brskalnik naprave julija 2017 |
|---|
SELECT |
Povprečna stopnja obiskov samo prve strani na [razsežnost]?
Realna stopnja obiskov ene strani je opredeljena kot odstotek obiskov z enim samim ogledom spletne strani. Spodaj so vzorčni skripti za vprašanje, ki se glasi: Kolikšna je bila realna stopnja obiskov samo prve strani na vir prometa?
Standardni SQL
| Stopnja obiskov samo prve strani na vir prometa julija 2017 |
|---|
#standardSQL |
SQL starejše različice
| Stopnja obiskov samo prve strani na vir prometa julija 2017 |
|---|
SELECT |
Povprečno število ogledov spletne strani izdelka glede na vrsto kupca (kupci v primerjavi z nekupci)
Spodaj so vzorčni skripti za vprašanje, ki se glasi: Kolikšno je bilo povprečno število ogledov spletne strani izdelka pri uporabnikih, ki so julija 2017 opravili nakup?
Standardni SQL
| Povprečno število ogledov spletne strani pri uporabnikih, ki so julija 2017 opravili nakup |
|---|
#standardSQL |
SQL starejše različice
| Povprečno število ogledov spletne strani pri uporabnikih, ki so julija 2017 opravili nakup |
|---|
SELECT |
Spodaj so vzorčni skripti za vprašanje, ki se glasi: Kolikšno je bilo povprečno število ogledov spletne strani izdelka pri uporabnikih, ki julija 2017 niso opravili nakupa?
Standardni SQL
| Povprečno število ogledov spletne strani pri uporabnikih, ki julija 2017 niso opravili nakupa |
|---|
#standardSQL |
SQL starejše različice
| Povprečno število ogledov spletne strani pri uporabnikih, ki julija 2017 niso opravili nakupa |
|---|
SELECT |
Povprečno število transakcij na kupca
Spodaj so vzorčni skripti za vprašanje, ki se glasi: Kolikšno je bilo povprečno število skupnih transakcij na uporabnika, ki je julija 2017 opravil nakup?
Standardni SQL
| Povprečno število skupnih transakcij na uporabnika, ki je julija 2017 opravil nakup |
|---|
#standardSQL |
SQL starejše različice
| Povprečno število skupnih transakcij na uporabnika, ki je julija 2017 opravil nakup |
|---|
SELECT |
Povprečni znesek, porabljen na sejo
Spodaj so vzorčni skripti za vprašanje, ki se glasi: Kolikšen je povprečen znesek, ki je bil julija 2017 porabljen na sejo?
Standardni SQL
| Povprečen znesek, ki je bil julija 2017 porabljen na sejo |
|---|
#standardSQL |
SQL starejše različice
| Povprečen znesek, ki je bil julija 2017 porabljen na sejo |
|---|
SELECT |
Zaporedje zadetkov
Spodaj so vzorčni skripti za vprašanje, ki se glasi: V kakšnem zaporedju so si uporabniki ogledali strani?.
Standardni SQL
| Zaporedje, v katerem so si uporabniki julija 2017 ogledali strani |
|---|
#standardSQL |
SQL starejše različice
| Zaporedje, v katerem so si uporabniki julija 2017 ogledali strani |
|---|
SELECT |
V tej poizvedbi omejite vrste zadetkov na PAGES, da iz prikaza izločite interakcije v povezavi z dogodki ali transakcijami. Vsaka vrstica izhodnih podatkov predstavlja ogled spletne strani in je prikazana po privzetem vrstnem redu polj v stavku SELECT.
Več razsežnosti po meri na ravni zadetka ali seje
| razsežnost po meri na ravni zadetka |
|---|
SELECT fullVisitorId, visitId, hits.hitNumber, hits.time, |
| razsežnost po meri na ravni seje |
|---|
SELECT fullVisitorId, visitId, |
V vsaki poizvedbi:
Stavek SELECT poizveduje za ustreznimi polji razsežnosti in meritve.
Funkcija MAX:
- Vrne razsežnost po meri kot nov stolpec. To funkcijo lahko ponovite, da vrne več razsežnosti po meri kot nove stolpce.
WITHIN hitsinWITHIN RECORDovrednotita pogoj znotraj ponovljenih polj v orodju BigQuery.- Pogoj znotraj funkcije
MAXje ovrednoten za vsako razsežnost po meri, vendar za vse, ki nisoindex=1 (hits)aliindex=2 (sessions), vrneNULL. - Vrne največjo vrednost, ki je vrednost razsežnosti po meri 1 za zadetke ali vrednost razsežnosti po meri 2 za seje, ker so vse ostale vrednosti
NULL.
Napredni primeri poizvedb
Zdaj ko poznate preproste poizvedbe, lahko oblikujete poizvedbe z naprednimi funkcijami, ki so na voljo v orodju BigQuery.
Izdelki, ki so jih kupile stranke, ki so kupile izdelek A (klasična e-trgovina)
Spodaj je okvirni skript za vprašanje Katere druge izdelke kupijo stranke, ki kupijo izdelek A?
| izdelki, ki jih kupi stranka, ki kupi izdelek A (klasična e-trgovina) |
|---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
- V prvi vrstici izberete vse druge artikle, ki jih je kupil uporabnik, z združevalno funkcijo
COUNT()pa izračunate količino za vsakega od drugih kupljenih artiklov. Rezultat je nato prikazan v polju z oznakoquantity, z njim povezan artikel pa v polju izdelka z oznakoother_purchased_products. - V sivo obarvani podpoizvedbi izberete samo edinstvene uporabnike (
fullVisitorId), ki so izvedli transakcije (totals.transactions>=1) in med transakcijo kupili izdelek A (WHERE hits.item.productName CONTAINS »ime artikla izdelka A«).
Pravila (stavka WHERE in AND) v poizvedbi na najvišji ravni (zelena) ne upoštevajo vrednosti v elementu hits.item.productName, ki so ničelne in vsebujejo izdelek A.
Sledi primer poizvedbe Če stranka kupi štiridelni komplet pisal »Brighton Metallic Pens – Set of 4«, katere druge izdelke je še kupila?
| izdelki, ki jih kupi stranka, ki kupi štiridelni komplet pisal »Brighton Metallic Pens (Set of 4)« dne 24. junija 2013 |
|---|
SELECT hits.item.productName AS other_purchased_products, COUNT(hits.item.productName) AS quantity |
V orodju Dremel/BigQuery uporaba stavka WHERE expr IN sproži JOIN, kar pomeni, da začnejo veljati omejitve velikosti. Natančneje, velikost desne strani stavka JOIN (v tem primeru števila obiskovalcev) mora biti manj kot 8 MB. V orodju Dremel se to imenuje broadcast JOIN. Ko velikost preseže 8 MB, morate sprožiti shuffled JOIN, kar lahko storite s sintakso JOIN EACH. Žal tega ne morete storiti s stavkom IN, lahko pa enako poizvedbo znova napišete s stavkom JOIN.
Izdelki, ki so jih kupile stranke, ki so kupile izdelek A (izboljšana e-trgovina)
Ta poizvedba je podobna prejšnji okvirni poizvedbi, vendar deluje za izboljšano e-trgovino. Uporablja tudi funkcijo TABLE_DATE_RANGE za iskanje podatkov za več dni.
| izdelki, ki jih kupi stranka, ki kupi izdelek A (izboljšana e-trgovina) |
|---|
SELECT hits.product.productSKU AS other_purchased_products, COUNT(hits.product.productSKU) AS quantity |
Povprečno število uporabniških interakcij pred nakupom
To je primer poizvedbe ukaza JOIN() [...] ON, ki je odvisen samo od podatkov storitve Analytics.
Spodaj je okvirni skript za vprašanje: Kolikšno je povprečno število uporabniških interakcij pred nakupom?
| število uporabniških interakcij pred nakupom |
|---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
- Prva vrstica izvede glavno matematično operacijo, da ugotovi povprečno število uporabniških interakcij na izdelek, poizvedba pa ustvari spoj med dvema podpoizvedbama, imenovanima »Alias_Name_1« in »Alias_Name_2«.
- Rezultat podpoizvedbe »Alias_Name_1« je polje, ki z združevalno funkcijo
SUM()sešteje vse številke zadetkov, zabeležene za izdelek. - Podpoizvedba »Alias_Name_2« ugotovi število zadetkov, ki so jih izvedli uporabniki na izdelek, s funkcijo
COUNT(). - Zadnja vrstica prikaže skupno polje (
hits.item.productSku), ki si ga delita oba nabora podatkov na spoju.
Sledi primer poizvedbe Kolikšno je povprečno število uporabniških interakcij pred nakupom dne 10. septembra 2013?
| število uporabniških interakcij pred nakupom dne 10. septembra 2013 |
|---|
SELECT one.hits.item.productSku AS ProductSku, ( sum_of_hit_number / total_hits ) AS avg_hit_number |
Odstotek zaloge, prodane na izdelek
To je primer poizvedbe, ki ni odvisna le od podatkov iz storitve Google Analytics, ampak tudi od podatkov, ki niso iz storitve Google Analytics. Če uporabite oba nabora podatkov, lahko dobite vpogled v vedenje uporabnikov na bolj segmentirani ravni. V orodje BigQuery lahko uvozite podatke, ki niso iz storitve Google Analytics, vendar upoštevajte, da bo to prispevalo k vašemu mesečnemu računu za prostor za shranjevanje podatkov.
Spodaj je okvirni skript za vprašanje Kolikšen odstotek zaloge je bil prodan na izdelek?
| odstotek zaloge, prodane na izdelek |
|---|
SELECT AnalyticsImport.product_data_20130728.productId, ((( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold )) * 100 ) AS percentage_of_stock_sold |
- Rezultat prve vrstice sta dve polji: Eno vsebuje vse ID-je izdelka, drugo pa je matematična operacija, ki prikazuje odstotek zaloge, prodane za ta ID izdelka.
- Ker je ta poizvedba odvisna od dveh naborov podatkov, morate uporabiti funkcijo
JOIN() ... ON. Ta ukaz spoji vrstice iz dveh naborov podatkov na podlagi skupnega polja med njimi. V tem primeru sta nabora podatkov[ ‘Imported_DataSet’ ]in‘Alias_Name’. [ ‘Imported_DataSet’ ]so podatki, ki niso iz storitve Google Analytics. To je nabor podatkov, ki vsebuje polje meritve za to, koliko zaloge je ostalo (Imported DataSet.'stock_left_field'), in polje razsežnosti ID-ja izdelka (Imported_DataSet.'productId_field').»Alias_Name«je ime, dodeljeno podatkom, ki jih vrne sivo obarvana podpoizvedba. Ta podpoizvedba uporabi podatke iz storitve Google Analytics, da ugotovi skupno količino artiklov, prodanih na izdelek.- Zadnja vrstica s stavkom
ONprikaže skupno polje med obema naboroma podatkov in mesto, kjer sta nabora podatkov spojena.
Veliko spremenljivkam v tej poizvedbi je pripeto ime njihovega nabora podatkov v obliki predpone (npr. Imported_DataSet.’productId_field’, Alias_Name.quantity_sold). Namen tega je, da je jasno, katero polje izbirate, in da je nedvoumno, kateremu naboru podatkov pripada.
Sledi primer poizvedbe Kolikšen odstotek zaloge je bil prodan na izdelek dne 28. julija 2013?
| odstotek zaloge, prodane na izdelek dne 28. julija 2013 |
|---|
SELECT AnalyticsImport.product_data_20130728.productId, ( ( ( one.quantity_sold ) / ( AnalyticsImport.product_data_20130728.productstock + one.quantity_sold ) ) * 100 ) AS percentage_of_stock_sold |
Dobičkonosnost posameznega izdelka
Spodaj je okvirni skript za vprašanje Kolikšna je dobičkonosnost posameznega izdelka?
| dobiček po izdelkih |
|---|
SELECT Alias_Name.hits.item.productSku, ( Imported_DataSet.’product profit field’ * Alias_Name.quantity ) AS profit |
- Prva vrstica vsebuje matematično operacijo za izračun skupnega dobička, ustvarjenega pri posameznem izdelku.
- Sivo obarvana podpoizvedba uporablja podatke, ki niso iz storitve Google Analytics, in zbere podatke o tem, koliko dobička se ustvari, ko je izdelek prodan.
- Rdeče obarvana podpoizvedba je podpoizvedba po podatkih iz storitve Google Analytics, ki bodo spojeni s podatki, ki niso iz storitve Google Analytics. Ta podpoizvedba izračuna količino prodanih artiklov na izdelek.
- Zadnja vrstica s stavkom
ONpojasni, katero polje je skupno naboroma podatkov. V tem primeru je to številka ID-ja izdelka.
Sledi primer poizvedbe Kolikšna je bila dobičkonosnost posameznega izdelka dne 28. julija 2013?
| dobiček po izdelkih dne 28. julija 2013 |
|---|
SELECT two.hits.item.productSku, ((AnalyticsImport.product_data_20130728.productprice-AnalyticsImport.product_data_20130728.productcost)*two.quantity) AS profit |
Dobiček se izračuna tako, da se poišče razliko med ceno, po kateri se izdelek prodaja, in stroški njegove izdelave. Te informacije so shranjene v naboru podatkov, ki niso iz storitve Google Analytics.
Realna dobičkonosnost posameznega izdelka (ob upoštevanju vračil)
Spodaj je okvirni skript za vprašanje Kolikšna je realna dobičkonosnost posameznega izdelka?
| realni dobiček po izdelkih |
|---|
SELECT Alias_Name.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
- Ta poizvedba je zelo podobna poizvedbi Kolikšna je dobičkonosnost posameznega izdelka? Razlike so le v naboru podatkov, ki niso iz storitve Google Analytics, v sivo obarvani podpoizvedbi in v matematični operaciji, ki izračuna realni dobiček v prvi vrstici.
- V naboru podatkov, ki niso iz storitve Google Analytics, izračunate znesek, porabljen za vračila kupnine (v stavku
SELECTrdeče podpoizvedbe). - Potem izvedete matematično operacijo v prvi vrstici, da ugotovite realni dobiček, in sicer tako, da od bruto dobička odštejete prihodke, porabljene za vračila.
Za več informacij o poizvedbi glejte razdelek o dobičkonosnosti posameznega izdelka.
Sledi primer poizvedbe Kolikšna je bila realna dobičkonosnost posameznega izdelka dne 28, julija 2013?
| realni dobiček po izdelkih dne 28. julija 2013 |
|---|
SELECT two.hits.item.productSku, (gross_profit-total_refund_revenue) AS real_profit |
Realni dobiček upošteva dobičkonosnost izdelka, v katerem so upoštevani izdelki, za katere je bila vrnjena kupnina. Skupni prihodek vračil za izdelek izračunate tako:
skupni prihodek vračil za izdelek = (cena izdelka + povrnjena cena dostave za izdelek) * količina izdelkov, za katere je bila vrnjena kupnina