可以将发布/子消息ID保留为数字吗?

时间:2018-12-24 10:56:50

标签: google-cloud-platform google-bigquery google-cloud-pubsub

发布/订阅保证messageId始终是唯一编号。因此,我将此ID用作deviceId,并将此值保存在bigquery表上。 Google文档说这个值字符串。但是,根据我的实验,messageId返回了15位数字。我应该将此值保留为bigquery上的数字吗?它会引起任何麻烦吗?

Pubsub Message Format

3 个答案:

答案 0 :(得分:3)

问题在于Integer(10)的最大长度,而不是它仅包含数值的事实。 这就是为什么应将值保留为String而不是文档中定义的Integer的原因

答案 1 :(得分:1)

发布/订阅保证messageId对于每个主题总是唯一-而不是它是 number (ref)

文档中所述的数据类型是字符串,因此它可以包含任何Unicode字符。

所以,正如其他人所说,尽管它是一个15位数字,现在, 将来,Google会生成一个非数字字符串,或者大于您的低级代码可以存储的数字,那么您的应用将失败。

答案 2 :(得分:1)

Google支持小组说: “ MessageId包含的最大位数为19。只要以前未使用过ID(因为它们是唯一的),则最多可以有19位数字,但实际上,可能无法达到位数。” < / p>

相关问题