0

我正在尝试将 BigQuery 连接到 Looker。我正在将示例数据从 Google 表格文档提取到 BigQuery 数据集;这部分工作正常,因为我的内部 BigQuery 查询对于这个数据集运行得很好。使用Looker 论坛中的此文档,我尝试创建一个服务帐户密钥以将我的 BigQuery 数据集连接到 Looker。不幸的是,文档有点过时了:Google 现在询问您要将密钥附加到哪个服务帐户(计算引擎默认服务帐户、应用程序引擎默认服务帐户或可以具有多个角色的新服务帐户)。

到目前为止,我已经尝试使用为计算引擎默认服务帐户、应用引擎默认服务帐户以及新的项目所有者服务帐户创建的 P12 密钥。当我在 Looker 中创建连接时,管理页面确认连接“可以连接,可以取消查询,可以运行简单的选择查询”(我需要它来做更复杂的事情,但我现在只是想连接) . 使用 SQL Runner 测试一个简单的 select 10 查询,我能够查询公共数据集,例如 hacker_news 或 usa_names。但是,每当我尝试在我的个人样本数据集上运行相同的查询时,都会收到此错误:

检索数据失败 - 作业在执行过程中遇到内部错误,无法成功完成。

BigQuery 项目从中提取的基本 Google 表格的权限设置为可供拥有该链接的同事查看。我还添加了我作为编辑器测试的每个服务帐户(我假设它具有最高权限)。此时,我正在为每个不同的可能角色创建新的服务帐户,以从角色的角度查看这是否是权限问题。到目前为止没有任何效果,所以任何见解都会有所帮助!

更新:我在同一个 BigQuery 数据集中创建了一个新表。新表格是使用 CSV 文件创建的,该文件只是在 Google 表格中下载我之前的表格。我更新了与 Looker 的连接。当我编写从新表中提取的 select 10 查询时,它运行良好并且运行得非常快。这似乎暗示问题出在 Google Sheets 和 Google BigQuery 之间的权限上。

4

1 回答 1

2

我自己一直想做这样的事情,看到这个问题,并决定深入研究。

我发现的第一件事是在旁观者话语中的这个“文档”:

https://discourse.looker.com/t/live-spreadsheets-in-databases/2698/7

在那里,它描述了完成这项工作所需的步骤。

根据您迄今为止对事件的描述,您可能遗漏了两件重要的事情(因为听起来您已经将工作表附加到数据集并能够从 BigQuery UI 进行查询):

  1. 确保与您用于将 Looker 连接到 BigQuery 的服务帐户共享 Google 表格。这是Username来自LookerConnections中页面的选项卡。Admin

  2. 确保您已为您的 google 项目启用 Drive 和 Sheets API。您可以通过API 库来做到这一点。只需搜索“Drive”(或“Sheets”),单击名称,然后单击 API 详细信息页面中的“Enable”按钮。

完成上述操作后,我必须等待几分钟才能开始工作。我会冒昧地猜测这是因为 Looker 需要在权限重置和工作之前循环它的内部连接池。因此,您可能需要运行一些失败的查询,或者等待连接池结束,然后才能生效。

希望有帮助。

于 2017-02-24T19:54:10.370 回答