BigQuery中的半結構數據和查詢

BigQuery本身是一個半結構化的數據庫,至于半結構化這個東西,簡單理解就是mysql中的一列變成了一個json。
就向下面這張圖一樣,圖里只有兩行數據,但是每行中又由相同的行構成。


它的結構也是提前定好的,是不能插入不存在的字段的,但repeated字段是可以重復的。
所以可以看到命令的參數名稱實際是作為event_params.key這個字段中的值存在的,
而這個參數本身的值是event_params.value中的四個列
[string_value,int_value,float_value,double_value]中的某一個值。
因此,你可以無限添加命令字而無需修改表結構。
半結構化的表比結構化的更靈活,而又因為是有結構的, 所以可以用sql高效的來查詢。
它的好處是可以在一張表里存不同的結構,
比如典型的命令表,每個命令的參數個數和類型都是不一樣的,
然而uid,server這些又是相同的。
repeated就可以讓他們存在一張表里,而不是每個命令都建一張表。
缺點是涉及到動態(tài)repeated字段的查詢很麻煩,需要用到unnest去解開。

待續(xù)。。。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容