相关疑难解决方法(0)

Google BigQuery中的随机抽样

我刚刚发现RAND()函数虽然没有文档,但在BigQuery中有效.我能够使用以下方法从莎士比亚数据集中生成一个(看似)10个单词的随机样本:

SELECT word FROM
(SELECT rand() as random,word FROM [publicdata:samples.shakespeare] ORDER BY random)
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

我的问题是:使用这种方法代替参考手册"高级示例"部分中定义的HASH()方法有什么缺点吗?https://developers.google.com/bigquery/query-reference

google-bigquery google-cloud-platform

51
推荐指数
5
解决办法
2万
查看次数

从BigQuery表中删除重复的行

我有一个包含> 1M行数据和20多列的表.

在我的表格(tableX)中,我在一个特定列(troubleColumn)中识别出重复记录(~80k).

如果可能的话,我想保留原始表名并从我有问题的列中删除重复记录,否则我可以创建一个具有相同模式但没有重复项的新表(tableXfinal).

我不擅长SQL或任何其他编程语言,所以请原谅我的无知.

delete from Accidents.CleanedFilledCombined 
where Fixed_Accident_Index 
in(select Fixed_Accident_Index from Accidents.CleanedFilledCombined 
group by Fixed_Accident_Index 
having count(Fixed_Accident_Index) >1);
Run Code Online (Sandbox Code Playgroud)

distinct google-bigquery

29
推荐指数
4
解决办法
3万
查看次数

28
推荐指数
3
解决办法
3万
查看次数

无法从本地App Engine开发服务器访问BigQuery

这是一个与python Google AppEngine应用程序和Google的BigQuery之间的服务器到服务器授权有关的问题,但可能与其他云服务相关.

tldr; 是否可以让App Engine本地开发服务器使用远程BigQuery服务进行身份验证?更好的是有一个本地BigQuery?

我知道AppAssertionCredentials目前不能在本地开发服务器上运行,尽管这本身就非常令人沮丧.

它适用于标准的Python代码,在本地开发服务器沙箱之外的另一种方法,详细介绍在这里,因为即使PyCrypto启用了沙盒不允许一些POSIX模块如"PWD"不为本地开发服务器工作.

我有AppAssertionCredentials远程服务器,并在上工作SignedJwtAssertionCredentials方法了本机Python工作本地,因此服务帐户设置正确.

导入在try/except块中的oauth2client/crypt.py内失败 - 在将它们注释掉后,很容易看到沙箱白名单异常.

我已经摆弄了添加'pwd'到白名单,然后又出现了另一个问题,所以我匆匆走回那个兔子洞.

我已经尝试将PyCrypto直接包含在项目中并得到类似的结果.

我也试过OpenSSL,结果相似.

我找了一个当地的appengine特定的PyCrypto无济于事,我错过了吗?我应该说这是在Mac OSX上 - 也许我应该启动一个Linux机箱然后放手一搏?

google-app-engine google-bigquery google-oauth google-api-python-client

23
推荐指数
1
解决办法
5407
查看次数

如何取消删除BigQuery表?

我不小心删除了我的一个BigQuery表.是否可以取回它?API似乎不支持取消删除.

google-bigquery

23
推荐指数
3
解决办法
6874
查看次数

如何在BigQuery中使用TABLE_QUERY()函数?

关于TABLE_QUERY函数的几个问题:

  • 示例显示table_id在查询字符串中使用,是否还有其他字段可用?
  • 调试似乎很难.当我尝试使用它时,我得到"评估辅助查询的错误".
  • TABLE_QUERY()工作怎么样?

google-bigquery

22
推荐指数
2
解决办法
1万
查看次数

Google App Engine:在数据存储上使用大查询?

拥有一个GAE数据存储类,其中包含几个100'000的对象.想要做几个涉及的查询(涉及计数查询).Big Query似乎适合这样做.

目前有一种使用Big Query查询实时AppEngine数据存储区的简便方法吗?

google-app-engine google-bigquery

15
推荐指数
3
解决办法
7174
查看次数

从非分区表迁移到分区表

6月,BQ团队宣布支持日期分区表.但是指南缺少如何将旧的非分区表迁移到新样式中.

我正在寻找一种方法来更新几个或如果不是所有表到新的样式.

在DAY类型之外还划分了其他可用选项吗?BQ UI是否显示此内容,因为我无法从BQ Web UI创建这样的新分区表.

google-bigquery

14
推荐指数
5
解决办法
7523
查看次数

如何在app引擎和python上使用Bigquery流媒体插件

我想开发一个直接将数据流传输到BigQuery表的应用程序引擎应用程序.

根据谷歌的文档,有一种简单的方法可以将数据流式传输到bigquery:

以下是有关如何编码流式插入的示例代码段:

body = {"rows":[
{"json": {"column_name":7.7,}}
]}

response = bigquery.tabledata().insertAll(
   projectId=PROJECT_ID,
   datasetId=DATASET_ID,
   tableId=TABLE_ID,
   body=body).execute()
Run Code Online (Sandbox Code Playgroud)

虽然我已经下载了客户端api,但我没有找到任何对上述Google示例中引用的"bigquery"模块/对象的引用.

应该找到bigquery对象(来自代码段)的位置?

任何人都可以展示更完整的方式来使用这个片段(使用正确的导入)?

我一直在寻找那么多,发现文档令人困惑和偏袒.

python google-app-engine google-bigquery

13
推荐指数
1
解决办法
4959
查看次数

如何提高BigQuery中GeoIP查询的性能?

我已经在BigQuery中加载了我的应用程序日志,我需要根据这些日志中的IP地址计算国家/地区.

我在我的表和从MaxMind下载的GeoIP映射表之间编写了一个连接查询.

理想的查询将OUTER JOIN使用范围过滤器,但BQ=在连接条件下支持.因此查询执行INNER JOIN并处理每一侧的缺失值JOIN.

我修改了原始查询,因此可以在维基百科公共数据集上运行.

有人可以帮助我让这个跑得更快吗?

SELECT id, client_ip, client_ip_code, B.Country_Name as Country_Name

FROM
    (SELECT id, contributor_ip as client_ip, INTEGER(PARSE_IP(contributor_ip)) AS client_ip_code, 1 AS One
    FROM [publicdata:samples.wikipedia] Limit 1000) AS A1

JOIN 
    (SELECT From_IP_Code, To_IP_Code, Country_Name, 1 AS One
    FROM

        -- 3 IP sets: 1.valid ranges, 2.Gaps, 3. Gap at the end of the set
        -- all Ranges of valid IPs:
        (SELECT From_IP_Code, To_IP_Code, Country_Name FROM [QA_DATASET.GeoIP]) …
Run Code Online (Sandbox Code Playgroud)

performance geoip google-bigquery

11
推荐指数
2
解决办法
3931
查看次数

BigQuery和OAuth2

我正在尝试使用服务帐户方法访问Google BigQuery .我的代码如下:

private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport();

private static final JsonFactory JSON_FACTORY = new JacksonFactory();

GoogleCredential credentials = new GoogleCredential.Builder()
            .setTransport(HTTP_TRANSPORT)
            .setJsonFactory(JSON_FACTORY)
            .setServiceAccountId("XXXXX@developer.gserviceaccount.com")
            .setServiceAccountScopes(BigqueryScopes.BIGQUERY)
            .setServiceAccountPrivateKeyFromP12File(
                    new File("PATH-TO-privatekey.p12"))
            .build();
    Bigquery bigquery = Bigquery.builder(HTTP_TRANSPORT, JSON_FACTORY).setHttpRequestInitializer(credentials)
            .build();
    com.google.api.services.bigquery.Bigquery.Datasets.List datasetRequest = bigquery.datasets().list(
            "PROJECT_ID");

    DatasetList datasetList = datasetRequest.execute();
    if (datasetList.getDatasets() != null) {
        java.util.List<Datasets> datasets = datasetList.getDatasets();
        System.out.println("Available datasets\n----------------");
        for (Datasets dataset : datasets) {
            System.out.format("%s\n", dataset.getDatasetReference().getDatasetId());
        }
    }
Run Code Online (Sandbox Code Playgroud)

但它抛出以下异常:

Exception in thread "main"  com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 Unauthorized
{
  "code" …
Run Code Online (Sandbox Code Playgroud)

java google-api oauth-2.0 google-bigquery

3
推荐指数
1
解决办法
3008
查看次数