2015-08-15 48 views
12

請檢查我的再三領域的理解在下面的例子:Google Bigquery中的REPEATED字段是什麼意思?

{ 
    "title": "History of Alphabet", 
    "author": [ 
     { 
      "name": "Larry" 
     }, 
    ] 
} 

此JSON具有架構:

[ 
    { 
     "name": "title", 
     "type": "STRING" 
    }, 
    { 
     "name": "author", 
     "type": "RECORD", 
     "fields": [ 
      { 
       "name": "name", 
       "type": "STRING" 
      } 
     ] 
    } 
] 

但以下JSON

{ 
    "title": "History of Alphabet", 
    "author": ["Larry", "Steve", "Eric"] 
} 

具有架構:

[ 
    { 
     "name": "title", 
     "type": "STRING" 
    }, 
    { 
     "name": "author", 
     "type": "STRING", 
     "mode": "REPEATED" 
    } 
] 

這是正確的嗎?

nb:我試圖通過​​,但無法找到任何解釋。

回答

14

關閉。在你的第一個例子中,author是一個對象數組,它對應於BQ中的重複記錄。因此,該模式將是:

[ 
    { 
     "name": "title", 
     "type": "STRING" 
    }, 
    { 
     "name": "author", 
     "type": "RECORD", 
     "mode": "REPEATED", <--- NOTE! 
     "fields": [ 
      { 
       "name": "name", 
       "type": "STRING" 
      } 
     ] 
    } 
] 

你的第二個數據/規劃對看起來不錯(但要注意整體架構是一個數組,而不是一個對象,它需要的元素之間用逗號)。

這裏有巢狀和重複領域的一些討論: https://cloud.google.com/bigquery/docs/data?hl=en#nested

也有一些樣本JSON數據對象在這裏: https://cloud.google.com/bigquery/preparing-data-for-bigquery#dataformats

但我同意我們不做解釋的一個好工作這些對象如何映射到BQ模式。對於那個很抱歉!

+0

感謝您提到模式是一個數組。 –

+0

很好解釋! – Harinder