Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用ruby gem的Bigquery通配符查询_Ruby_Google Bigquery_Wildcard - Fatal编程技术网

使用ruby gem的Bigquery通配符查询

使用ruby gem的Bigquery通配符查询,ruby,google-bigquery,wildcard,Ruby,Google Bigquery,Wildcard,我正在使用google cloud bigquery gem(版本0.20.2,目前无法升级) 我有一个审计数据集,其中包含以下格式的许多表: audit.some_table20170101 audit.some_table20170102 audit.some_table20170103 等等 我正在尝试运行一个查询,该查询将扫描所有这些表,并为我提供字段some\u field的最后一个值 我想要的是使用表通配符: FROM audit.some_table* 希望 SELECT L

我正在使用google cloud bigquery gem(版本0.20.2,目前无法升级)

我有一个审计数据集,其中包含以下格式的许多表:

audit.some_table20170101
audit.some_table20170102 
audit.some_table20170103
等等

我正在尝试运行一个查询,该查询将扫描所有这些表,并为我提供字段some\u field的最后一个值

我想要的是使用表通配符:

FROM audit.some_table*
希望

SELECT LAST(some_field) AS last_some_field
  • 在使用BigQueryWeb控制台时,我可以通过 使用backticks(来自'audit.some_table*`),但以编程方式对gem执行相同操作会导致Google::Cloud::InvalidArgumentError:invalid:无效的表名:`audit.some_table`*`

  • 即使在web控制台中,当我尝试使用最后一个命令时,它也需要使用遗留SQL,这会由于上一节的反勾号而导致错误。如果禁用遗留sql,LAST将不再可用(不熟悉的命令),然后我必须按时间戳列降序并限制1


  • 如何解决这些问题并能够使用上述gem和版本进行查询?只有在有订单时才有意义。BigQuery中的表没有继承顺序,如果运行
    SELECT*fromtable
    ,每次都可能以不同的顺序得到结果。因此,正确的做法是使用
    ORDER BY some\u value DESC LIMIT 1
    构造

    实际上,只有在标准SQL中才可以使用,以便在FROM子句中使用与遗留SQL类似的功能