BigQuery JSON导出的列名是否保持大写/小写?

时间:2018-09-11 04:08:39

标签: google-bigquery

BigQuery的列名不区分大小写。 (https://cloud.google.com/bigquery/docs/reference/standard-sql/lexical

据我尝试(如下),在导出时,BigQuery似乎保持列名的大写/小写。

$ bq show --format=sparse sandbox.case_test

   Last modified         Schema        Total Rows   Total Bytes   Expiration   Time Partitioning   Labels 
 ----------------- ------------------ ------------ ------------- ------------ ------------------- --------
  11 Sep 12:46:02   |- small: string   1            12                                                    
                    |- LARGE: string

此表同时具有大写和小写名称。

$ bq extract --destination_format=NEWLINE_DELIMITED_JSON  sandbox.case_test gs://sandbox/case_test.json


$ gsutil cat  gs://sandbox/case_test.json
{"small":"hoge","LARGE":"buzz"}

有人知道任何提及这种行为的文件吗?

2 个答案:

答案 0 :(得分:1)

列名不区分大小写,这意味着您可以-不用担心在SELECT语句中引用列时的大小写。例如

#standardSQL
SELECT small, LARGE 
FROM `project.sandbox.case_test`

 #standardSQL
SELECT sMAll, LarGE 
FROM `project.sandbox.case_test`  

在没有任何失败的情况下将分别产生结果

Row small   LARGE    
1   hoge    buzz     

Row sMAll   LarGE    
1   hoge    buzz       

请注意,列名不区分大小写并不意味着它们在导出过程中将被更改-而是将使用在模式中设置的名称
我怀疑这会在文档中的任何地方特别体现,因为我认为这很明显

答案 1 :(得分:0)

虽然列引用区分大小写,但列元数据在元数据中存储时保留大小写。我认为没有文档说“ BigQuery存储您提供的原始列名称,并将其用作导出的字段名称”,但是我可以确认确实如此。