2014-05-16 82 views
2
  1. 在谷歌的BigQuery [1],它支持嵌套的字段類型,所以我可以說,這是最好的方式比分成表和查詢與加入組織?谷歌的BigQuery - 嵌套字段或表加入

  2. 當我們需要添加新列時,Bigquery支持補丁,當在一個非常大的表中添加新列時性能如何。 1TB,有沒有辦法分鐘。因爲我們可能需要每月更新一次列的時間。

[1] https://developers.google.com/bigquery/docs/data#nested

[2] https://developers.google.com/bigquery/docs/reference/v2/tables/patch

回答

2
  1. 我不一定會說使用嵌套字段總是整理表的首選方法;這取決於你的用例。一般來說,我發現嵌套數據通常更容易處理,特別是如果大多數查詢不需要訪問嵌套字段。但是,如果您在計算中大量使用嵌套字段,需要將不同的嵌套字段與eachother相關聯,或者使用多個重複字段返回結果,則最好使用多個表。

  2. 添加新列是一個元數據操作,所以它應該是O(1)時間;所涉及的表格沒有停機時間。 (注意僅支持添加列,而不是重命名或刪除它們)。

0

是的。嵌套字段可在非規範化的某些情況下更加有用像

{ 
    "geo": {   
    "type": "Polygon",  
    "coordinates": [-122.82613, 45.393108 ]  
     }  
} 

這個架構可能是

{"name":"geo","type":"record", 
       "fields": 
        [ 
        {"name":"type","type":"string"}, 
        {"name":"coordinates","type":"float","mode":"repeated"} 
        ] 
       } 

但在多層次嵌套的數組的情況下(如經常Twitter的JSON)的BigQuery似乎報告一些issues.Below是從Twitter輸出JSON的一種非常常見的格式,其中座標以嵌套(多級陣列)表示:

{ 
    "geo": { 
    "type": "Polygon", 
    "coordinates": [ 
     [ 
     [ 
      -122.82613, 
      45.393108 
     ], 
     [ 
      -122.82613, 
      45.456634 
     ], 
     [ 
      -122.74354, 
      45.456634 
     ] 
     ] 
    ] 
    } 
} 

- >誠實我小號直到找到答案。