我认为我想做的事情目前是不可行的,但想澄清一下。
我有一个存储桶说bucketA
,其中包含向公众提供的文件,还有一个存储桶说bucketB
,其中bucketA
的访问日志以特定的CSV格式存储
我想要做的是对这些访问日志运行SQL查询。我遇到的问题是日志存储在不同的CSV中(我认为每小时一个)。我试图通过BigQuery UI界面导入它们,但似乎有一对一的CSV到表映射。当您在放置gs://<bucket_name>/<path_to_input_file>
时将占位符和文档定义到输入位置。
基于以上我的问题是:是否可以将存储桶中的所有文件上传到单个BigQuery表中,类似于&#34; *&#34;星号运算符?
构建表后,当有更多带有数据的文件存储在存储桶中时会发生什么?我是否需要重新运行,是否有调度程序?
答案 0 :(得分:1)
基于以上我的问题是:是否可以上传全部 存储桶中的文件到单个BigQuery表,类似于 “*”星号运算符?
您可以直接在GCS(联合来源)中查询或加载,然后在两种情况下都使用*
将其全部放入原生表格中:
构建表后,当有更多带有数据的文件存储在存储桶中时会发生什么?我是否需要重新运行,是否有调度程序?
如果您将其保留为en external
表,那么每次查询BigQuery都会扫描所有文件,因此您将获得新文件/数据。如果将其作为本机表加载,则需要自己安排作业以将每个新文件附加到表中。
答案 1 :(得分:0)
使用BigQuery网络用户界面,然后使用标准的上载csv方法创建新表和一些初始数据。
要进行快速测试,如何使用BigQuery网络用户界面在现有表中插入更多新数据?
我意识到我无法在查询编辑器文本框中复制和粘贴多个插入语句。
INSERT INTO dataset.myschema VALUES ('new value1', 'more value1');
INSERT INTO dataset.myschema VALUES ('new value2', 'more value2');
哇,那么将新数据行1插入1会很麻烦。
幸运的是BigQuery支持INSERT statements that use VALUES syntax can insert multiple rows
。
INSERT INTO dataset.myschema VALUES ('new value1', 'more value1'),
('new value2', 'more value2');