我在C#中使用"Google.Apis.Bigquery.v2客户端库".
我使用"服务帐户"授权Google BigQuery(请参阅http://www.afterlogic.com/mailbee-net/docs/OAuth2GoogleServiceAccounts.html).要创建X509证书,请使用Google Developers Console中的p12密钥.但是,现在json键是默认值.我可以用它代替p12键吗?
我有以下代码:
string serviceAccountEmail = "xxxx@developer.gserviceaccount.com";
X509Certificate2 certificate;
using (Stream stream = new FileStream(@"C:\key.p12", FileMode.Open, FileAccess.Read, FileShare.Read))
{
using (MemoryStream ms = new MemoryStream())
{
stream.CopyTo(ms);
certificate = new X509Certificate2(ms.ToArray(), "notasecret", X509KeyStorageFlags.Exportable);
}
}
// Create credentials
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] {
BigqueryService.Scope.Bigquery,
BigqueryService.Scope.CloudPlatform,
},
}.FromCertificate(certificate));
// Create the service
BaseClientService.Initializer initializer = new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "My Application",
GZipEnabled = true,
}; …Run Code Online (Sandbox Code Playgroud) c# google-bigquery google-api-dotnet-client google-sheets-api
有没有办法选择*除了BigQuery中的[x,y,z列名称]?我看到MySQL的一些解决方案,但不确定它是否适用于BQ.
谢谢.
有没有办法通过以下方式在Google BigQuery中创建临时表:
SELECT * INTO <temp table>
FROM <table name>
Run Code Online (Sandbox Code Playgroud)
我们可以在SQL中创建一样吗?
对于复杂查询,我需要创建临时表来存储我的数据.
这是一个与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
我正在尝试使用Python通过BigQuery API连接到Google BigQuery.
我在此处关注此页:https: //cloud.google.com/bigquery/bigquery-api-quickstart
我的代码如下:
import os
import argparse
from apiclient.discovery import build
from apiclient.errors import HttpError
from oauth2client.client import GoogleCredentials
GOOGLE_APPLICATION_CREDENTIALS = './Peepl-cb1dac99bdc0.json'
def main(project_id):
# Grab the application's default credentials from the environment.
credentials = GoogleCredentials.get_application_default()
print(credentials)
# Construct the service object for interacting with the BigQuery API.
bigquery_service = build('bigquery', 'v2', credentials=credentials)
try:
query_request = bigquery_service.jobs()
query_data = {
'query': (
'SELECT TOP(corpus, 10) as title, '
'COUNT(*) as unique_words '
'FROM [publicdata:samples.shakespeare];')
} …Run Code Online (Sandbox Code Playgroud) 这是为什么BigQuery在小数据集上表现不佳的问题的后续问题.
假设我有一个大约1M行的数据集.在我们正在使用的当前数据库(mysql)中,聚合查询运行速度很慢,可能需要大约10秒左右的复杂聚合.在BigQuery上,所需的初始化时间可能会使这个查询花费大约3秒,比在mysql中更好,但是如果我们需要在1s或更低版本中返回查询,那么该工作的工具是错误的.
那么我的问题是,使用BigQuery对中等大小的数据集(例如1-10M行)进行聚合查询会有什么好的选择?示例查询可能是:
SELECT studio, territory, count(*)
FROM mytable
GROUP BY studio, territory
ORDER BY count(*) DESC
Run Code Online (Sandbox Code Playgroud)
我想到的可能解决方案是ElasticSearch(https://github.com/NLPchina/elasticsearch-sql)和Redshift(postgres太慢).什么是可以通过SQL查询的好选择?
注意:我不是在寻找为什么或如何使用 BQ,我正在寻找10M行以下数据集的替代方案,其中查询可以在~1s内返回.
关于TABLE_QUERY函数的几个问题:
table_id在查询字符串中使用,是否还有其他字段可用?TABLE_QUERY()工作怎么样?我在bigquery中发现了一个小故障/错误.我们根据starschema.net:clouddb:bank.Banks_token下的银行统计数据得到了一张表
如果我运行以下查询:
SELECT count(*) as totalrow,
count(DISTINCT BankId ) as bankidcnt
FROM bank.Banks_token;
Run Code Online (Sandbox Code Playgroud)
我得到以下结果:
Row totalrow bankidcnt
1 9513 9903
Run Code Online (Sandbox Code Playgroud)
我的问题是如果我有9513row我怎么能得到9903row,这比表中的rowcount多390个.
我正在尝试向BigQuery现有表添加新列.我尝试过bq命令工具和API方法.调用Tables.update()时出现以下错误.
我试过提供带有附加字段的完整模式,并且也给出了如下所示的相同错误.
使用API我得到以下错误:
{
"schema": {
"fields": [{
"name": "added_column",
"type": "integer",
"mode": "nullable"
}]
}
}
{
"error": {
"errors": [{
"domain": "global",
"reason": "invalid",
"message": "Provided Schema does not match Table [blah]"
}],
"code": 400,
"message": "Provided Schema does not match Table [blah]"
}
}
Run Code Online (Sandbox Code Playgroud)
使用BQ工具,我收到以下错误:
./bq update -t blah added_column:integer
Run Code Online (Sandbox Code Playgroud)
更新操作中的BigQuery错误:提供的架构与表[blah]不匹配