Tag: 谷歌 的BigQuery

在BigQuery API中为ViewDefinition指定SQL方言

有两个用于操作BigQuery实体的API(数据集,表,视图等)…… 旧的(已弃用的)API:com.google.api.services.bigquery 新API:com.google.cloud.bigquery 在旧的API中,View类有一个布尔标志,指定关联的查询是使用传统SQL还是标准SQL。 通过以下方法访问该标志: getUseLegacySql setUseLegacySql 新API引入了ViewDefinition类,但它没有布尔标志。 如何为ViewDefinition指定SQL方言?

为什么BigQuery加载作业统计信息会返回查询信息?

我们有一些加载作业可以从GCS中挖掘文件,并将它们加载到BigQuery进行分析。 我们使用BigQuery Java API中的JobConfigurationLoad 类来实现此目的。 它工作正常。 但是,我们注意到作业完成时返回的JobStatistics 类包含“query”和“totalBytesBilled”信息。 如果这是一个加载作业,为什么它返回查询信息?

Google Cloud Dataflow BigQueryIO.Write发生未知错误(http代码500)

有人问我谷歌云数据流BigQueryIO.Write发生未知错误(http代码500)吗? 我在4月,5月,6月使用Dataflow处理一些数据,我使用相同的代码处理4月数据(400MB)并写入BigQuery成功,但是当我处理May(60MB)或June(90MB)数据时,它失败了。 4月,5月和6月的数据格式相同。 将作者从BigQuery改为TextIO,工作会成功,所以我认为数据格式是好的。 日志仪表板没有任何错误日志….. 系统只有同样的未知错误 我写的代码在这里: http : //pastie.org/10907947 “执行BigQuery导入作业”后出现错误消息: Workflow failed. Causes: (cc846): S01:Read Files/Read+Window.Into()+AnonymousParDo+BigQueryIO.Write/DataflowPipelineRunner.BatchBigQueryIOWrite/DataflowPipelineRunner.BatchBigQueryIONativeWrite failed., (e19a27451b49ae8d): BigQuery import job “dataflow_job_631261” failed., (e19a745a666): BigQuery creation of import job for table “hi_event_m6” in dataset “TESTSET” in project “lib-ro-123” failed., (e19a2749ae3f): BigQuery execution failed., (e19a2745a618): Error: Message: An internal error occurred and the request could […]

如何从Java客户端创建BigQuery数据集和表/模式(没有CSV文件)

我认为这里第200行的方法是相关的(编辑:我需要在行插入insertReq = bigquery.jobs()。insert(PROJECT_ID,insertJob);)中添加一个参数,但它不起作用。 我得到“加载配置必须至少指定一个源URI” 我尝试过以下方法: TableSchema schema = new TableSchema(); List tableFieldSchema = new ArrayList(); TableFieldSchema schemaEntry = new TableFieldSchema(); schemaEntry.setName(myFirstFieldName); schemaEntry.setType(“STRING”); tableFieldSchema.add(schemaEntry); schema.setFields(tableFieldSchema); Table table = new Table(); table.setSchema(schema); table.setId(tableName); table.setCreationTime(System.currentTimeMillis()); table.setKind(“bigquery#table”); try { bigquery.tables().insert(PROJECT_ID, DATASET_ID, table).execute(); } catch (IOException e) { } 但我收到错误Required parameter is missing

如何从Cassandra增加Dataflow读取并行性

我试图将大量数据(2 TB,30kkk行)从Cassandra导出到BigQuery。 我的所有基础设施都在GCP上。 我的Cassandra集群有4个节点(4个vCPU,26 GB内存,每个2000 GB PD(HDD))。 集群中有一个种子节点。 我需要在写入BQ之前转换我的数据,所以我使用的是Dataflow。 工人类型是n1-highmem-2 。 工人和Cassandra实例位于同一区域europe-west1-c 。 我对Cassandra的限制: 我负责读取转换的部分管道代码位于此处 。 自动缩放 问题是,当我没有设置–numWorkers ,以这种方式自动调整工人数量(平均2名工人): 负载均衡 当我设置–numWorkers=15 ,读取速率不会增加,只有2名工作人员与Cassandra通信(我可以从iftop告诉它,只有这些工作人员的CPU负载大约为60%)。 同时,Cassandra节点没有很多负载(CPU使用率为20-30%)。 种子节点的网络和磁盘使用率比其他节点大约高2倍,但不是太高,我认为: 对于非种子节点: 管道发射警告 管道启动时我有一些警告: WARNING: Size estimation of the source failed: org.apache.beam.sdk.io.cassandra.CassandraIO$CassandraSource@7569ea63 com.datastax.driver.core.exceptions.NoHostAvailableException: All host(s) tried for query failed (tried: /10.132.9.101:9042 (com.datastax.driver.core.exceptions.TransportException: [/10.132.9.101:9042] Cannot connect), /10.132.9.102:9042 (com.datastax.driver.core.exceptions.TransportException: [/10.132.9.102:9042] Cannot connect), /10.132.9.103:9042 (com.datastax.driver.core.exceptions.TransportException: […]

BigQuery:如何将库加载到java代码中

我是Bigquery的新开发者。 我正在https://developers.google.com/bigquery/bigquery-api-quickstart中使用Java代码和https://developers.google.com/bigquery/client-libraries导入的库中的教程。 但是,我无法将库加载到Java代码中,例如import com.google.api.services.bigquery.model.DatasetList; import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.Job import com.google.api.services.bigquery.model.DatasetList; import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.Job import com.google.api.services.bigquery.model.DatasetList; import com.google.api.services.bigquery.model.GetQueryResultsResponse; import com.google.api.services.bigquery.model.Job请告诉我如何解决此案例。 谢谢

将嵌套的BigQuery数据导出到云存储

我试图通过API将bigquery数据导出到谷歌云存储桶。 我从这里改编了代码片段https://cloud.google.com/bigquery/docs/exporting-data Job job = table.extract(format, gcsUrl); // Wait for the job to complete try { Job completedJob = job.waitFor(WaitForOption.checkEvery(1, TimeUnit.SECONDS), WaitForOption.timeout(3, TimeUnit.MINUTES)); if (completedJob != null && completedJob.getStatus().getError() == null) { // Job completed successfully } else { // Handle error case System.out.println(completedJob.getStatus().getError()); } } catch (InterruptedException | TimeoutException e) { // Handle interrupted […]

google bigquery的jdbc驱动程序

美好的一天, 你们知道GBQ的任何JDBC接口或驱动程序吗? 只有Java请 – 我已经完成了Python库。 迈克,提前谢谢你,祝你有个美好的一天

使用Java API的服务帐户validationGoogle API

我正在尝试使用oauth API通过Java API对Google服务帐户进行身份validation。 我希望用它来访问Google Bigquery。 我从API请求中返回“无效授权”。 以下是代码,它是基本身份validation示例的副本(不适用于Bigquery ..而是另一个Google API): /** Global instance of the HTTP transport. */ private static final HttpTransport HTTP_TRANSPORT = new NetHttpTransport(); /** Global instance of the JSON factory. */ private static final JsonFactory JSON_FACTORY = new JacksonFactory(); private static Bigquery bigquery; public ServiceAccountExample() { try { try { GoogleCredential credential = […]

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 = […]