是否可以在内存中本地创建和运行 bigquery 临时表?
Posted
技术标签:
【中文标题】是否可以在内存中本地创建和运行 bigquery 临时表?【英文标题】:Is it possible to create and run a bigquery temp table locally in memory? 【发布时间】:2019-03-22 13:17:01 【问题描述】:我正在尝试在内存中创建一个本地临时 bigquery 表以进行测试。我正在用 Java 做这个。我没有找到关于这方面的大量信息,似乎 BigQueryOptions.getDefaultInstance().getService() 可以做到这一点,但文档说它会查找 GOOGLE_APPLICATION_CREDENTIALS 环境变量以了解去向。
有办法在本地做吗?
【问题讨论】:
您好,欢迎来到 SO,您是否尝试按照此 link 中描述的有关如何使用 BigQuery 客户端库的文档进行操作。您能否使用更详细的代码示例来编辑您的问题,以更好地解释您的问题 嗨@TamirKlein,谢谢。我知道这有点令人困惑。所以我查看了文档,我很难找出在没有提供凭据时会发生什么,如果它会在我的本地机器上运行。基本上我想做的是让它可单元测试。 Spotify 有一个 scala 库可以做到这一点,github.com/spotify/scio/blob/master/scio-bigquery/src/main/… 您首先需要在本地计算机上设置您的服务帐户,如我提供的链接中所述。设置后,您将能够运行查询并获得响应。因此,您需要完成 2 个步骤。如果您发现并发出问题,请使用您收到的详细错误消息更新您的问题并解释您执行的步骤。 【参考方案1】:如果您正在使用 Java,并且正在寻找一种使用 BigQuery 模拟创建单元测试的方法,那么有一个带有类的 GitHub 项目可以为您做到这一点:
https://github.com/GoogleCloudPlatform/bigdata-interop https://github.com/GoogleCloudPlatform/bigdata-interop/blob/master/bigquery/src/test/java/com/google/cloud/hadoop/io/bigquery/BigQueryUtilsTest.javaBigQueryUtilsTest.java
依赖于 Mockito,它在 Apache-2.0 许可下(如果您需要针对您的环境进行修改)。
【讨论】:
我们有类似的 Python 功能吗? Scala 也有类似的东西吗? 我很抱歉没有回答这些问题,我转向雪花以上是关于是否可以在内存中本地创建和运行 bigquery 临时表?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以从 BigQuery 表中删除 Partition filter=Required 设置?