Google bigquery Bigquery分区装饰器是否保证按插入顺序返回数据?

Google bigquery Bigquery分区装饰器是否保证按插入顺序返回数据?,google-bigquery,Google Bigquery,我有一个表,其中数据按特定顺序插入。我是否可以保证,通过使用0/10分区装饰器,查询将按照插入数据的顺序在表的前10%上运行,1/10分区装饰器将按照插入数据的顺序在接下来的10%上进行查询,等等 分区装饰器上的count(*)是否会导致表扫描(因此成本非零),或者它是否只使用元数据(因此是免费的)?在BigQuery insert中并不能保证您有一个顺序,所以您不应该感到困惑。插入是在多个接收节点上并行运行的异步作业,因此没有定义原子顺序。不仅在BigQuery中,其他数据库引擎也不能保证按插

我有一个表,其中数据按特定顺序插入。我是否可以保证,通过使用0/10分区装饰器,查询将按照插入数据的顺序在表的前10%上运行,1/10分区装饰器将按照插入数据的顺序在接下来的10%上进行查询,等等


分区装饰器上的count(*)是否会导致表扫描(因此成本非零),或者它是否只使用元数据(因此是免费的)?

在BigQuery insert中并不能保证您有一个顺序,所以您不应该感到困惑。插入是在多个接收节点上并行运行的异步作业,因此没有定义原子顺序。不仅在BigQuery中,其他数据库引擎也不能保证按插入顺序检索数据,因此这是您思维中的一个缺陷。如果您需要原子顺序,那么您应该查看其他数据库,如Redis,它们具有针对此类问题的特定数据类型

  • 从[publicdata:samples]中选择标题。wikipedia@0]
    在本例中,
    @0
    的意思类似于“向我展示表7天前的样子”(7天是最早的可用快照。因此,它只是表的快照,而不是与数据顺序相关的东西
  • 检索数据时,您无法保证数据是按插入顺序返回的

  • 非常简单的计数只使用元数据,而且成本是免费的。但是有些计数需要全表扫描,并产生成本,主要是因为where条件