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"}
有人知道任何提及这种行为的文件吗?
答案 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存储您提供的原始列名称,并将其用作导出的字段名称”,但是我可以确认确实如此。