我刚刚发现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
我有一个包含> 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) 谷歌的Dremel 在这里描述.Dremel和Mapreduce有什么区别?
这是一个与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
关于TABLE_QUERY函数的几个问题:
table_id在查询字符串中使用,是否还有其他字段可用?TABLE_QUERY()工作怎么样?拥有一个GAE数据存储类,其中包含几个100'000的对象.想要做几个涉及的查询(涉及计数查询).Big Query似乎适合这样做.
目前有一种使用Big Query查询实时AppEngine数据存储区的简便方法吗?
6月,BQ团队宣布支持日期分区表.但是指南缺少如何将旧的非分区表迁移到新样式中.
我正在寻找一种方法来更新几个或如果不是所有表到新的样式.
在DAY类型之外还划分了其他可用选项吗?BQ UI是否显示此内容,因为我无法从BQ Web UI创建这样的新分区表.
我想开发一个直接将数据流传输到BigQuery表的应用程序引擎应用程序.
根据谷歌的文档,有一种简单的方法可以将数据流式传输到bigquery:
https://developers.google.com/bigquery/streaming-data-into-bigquery#streaminginsertexamples (注意:在上面的链接中你应该选择python选项卡而不是Java)
以下是有关如何编码流式插入的示例代码段:
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对象(来自代码段)的位置?
任何人都可以展示更完整的方式来使用这个片段(使用正确的导入)?
我一直在寻找那么多,发现文档令人困惑和偏袒.
我已经在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) 我正在尝试使用服务帐户方法访问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) google-bigquery ×11
abstraction ×1
distinct ×1
geoip ×1
google-api ×1
google-oauth ×1
hadoop ×1
java ×1
mapreduce ×1
oauth-2.0 ×1
performance ×1
python ×1