BigQuery:“聚类遇到的键长于”

Fel*_*ffa 4 clustered-index google-bigquery

将我的Wikipedia浏览量表聚类时,出现错误:

群集遇到的密钥长于最大允许的限制1024个字节。

内容:https//medium.com/google-cloud/bigquery-optimized-cluster-your-tables-65e2f684594b

(我正在通过

CREATE TABLE `fh-bigquery.wikipedia_v3.pageviews_2017`
PARTITION BY DATE(datehour)
CLUSTER BY wiki, title
...
Run Code Online (Sandbox Code Playgroud)

Fel*_*ffa 6

群集表时,BigQuery的键限制为1KB。

您可以通过更改插入代码来解决示例表中的问题,以便将任何太长的条目都截断。

例如,代替:

INSERT INTO `fh-bigquery.wikipedia_v3.pageviews_2018` (datehour, wiki, title, views)
SELECT datehour, wiki, title, views
Run Code Online (Sandbox Code Playgroud)

使用以下命令截断可能较长的标题:

INSERT INTO `fh-bigquery.wikipedia_v3.pageviews_2018` (datehour, wiki, title, views)
SELECT datehour, wiki, SUBSTR(title, 0, 300) title, views
Run Code Online (Sandbox Code Playgroud)

如果继续遇到错误,请注意某些格式错误的字符串的长度可能比SUBSTR()看到的长度更长。用以下方法过滤掉它们:

WHERE BYTE_LENGTH(title) < 300
Run Code Online (Sandbox Code Playgroud)

  • 一定要说,我喜欢BQ的发展和创新速度:)! (2认同)
  • 我怀疑标题不是“格式错误”,而是帽子SUBSTR在Unicode符文(字符)上运行并且聚类限制以字节为单位。因此,具有双倍/三倍宽度字符(许多汉字,重音字符,表情符号)的标题将属于这种情况。 (2认同)