2017-06-08 15 views
0

Big Queryで繰返しフィールドからデータを平坦化しようとしています。私はこのQuerying multiple repeated fields in BigQueryを見てきましたが、これを動作させることはできません。Google BigQueryで複数の繰り返しフィールドを平坦化する

私のデータは以下のようになります。私が欲しいもの

[ 
    { 
    "visitorId": null, 
    "visitNumber": "15", 


    "device": { 
     "browser": "Safari (in-app)", 
     "browserVersion": "(not set)", 
     "browserSize": "380x670", 
     "operatingSystem": "iOS", 
    }, 
    "hits": [ 
     { 
     "isEntrance": "true", 
     "isExit": "true", 
     "referer": null, 
     "page": { 
      "pagePath": "/news/bla-bla-bla", 
      "hostname": "www.example.com", 
      "pageTitle": "Win tickets!!", 
      "searchKeyword": null, 
      "searchCategory": null, 
      "pagePathLevel1": "/news/", 
      "pagePathLevel2": "/bla-bla-bla", 
      "pagePathLevel3": "", 
      "pagePathLevel4": "" 
     }, 
     "transaction": null 
     } 
    ] 
    } 
] 

はヒット-ページ繰り返しフィールド内のフィールドです。

私は(値「/ニュース/ BLA-BLA-BLA」)hits.page.pagePathを取得したい例えば

私は次のクエリを試してみましたが、私はエラーを取得:

SELECT 
visitorId, 
visitNumber, 
device.browser, 
hits.page.pagePath 
FROM 
`Project.Page` 
LIMIT 1000 

私は取得していますエラーがga_sessionsスキーマでこの

Error: Cannot access field page on a value with type ARRAY<STRUCT<hitNumber INT64, time INT64, hour INT64, ...>> 

答えて

2

で、フィールドhitsARRAY型として表されます。

通常、このタイプフィールドで作業する場合は、配列を開くためにUNNEST操作を適用する必要があります。

すなわち、FROM句で、そんなにようCROSS JOIN(クロスを適用することによって、あなたUNNESTアレイはUNNEST関数続くコンマとして表すことができる動作を、参加)を適用することができる:

SELECT 
    visitorId, 
    visitNumber, 
    device.browser, 
    hits.page.pagePath 
FROM `Project.Page`, 
UNNEST(hits) hits 
LIMIT 1000 

このトピックに関するBigQueryのドキュメントフォロースルーすることを確認し、それは本当によく書かれている

SELECT 
    visitorId, 
    visitNumber, 
    device.browser, 
    hits.page.pagePath 
FROM `Project.Page`, 
UNNEST(hits) hits 
WHERE regexp_contains(hits.page.pagePath, r'/news/bla-bla-bla') 
LIMIT 1000 

を、あなたは大きなを処理するために、新しい技術に多くのことを学びます:あなたは、特定のpagePathsをしたい場合は、そのようにそれらをフィルタリングすることができますデータ。

+0

[ブログの投稿](https://firebase.googleblog.com/2017/03/bigquery-tip-unnest-function.html)に詳しい情報があります。 – Steren

関連する問題