Google api 如何使用c应用程序选择大数据集并从bigquery加载数据表
我已经使用服务身份验证创建了C.NET应用程序 我试图从GoogleBigQuery运行select语句公共示例表,并将结果加载到datatable中,但无法实现,它会抛出错误 导致错误的查询是:从[publicdata:samples.github\u timeline]中选择* 这是C代码Google api 如何使用c应用程序选择大数据集并从bigquery加载数据表,google-api,google-bigquery,google-api-dotnet-client,Google Api,Google Bigquery,Google Api Dotnet Client,我已经使用服务身份验证创建了C.NET应用程序 我试图从GoogleBigQuery运行select语句公共示例表,并将结果加载到datatable中,但无法实现,它会抛出错误 导致错误的查询是:从[publicdata:samples.github\u timeline]中选择* 这是C代码 String serviceAccountEmail = "SERVICE ACCOUNT EMAIL ADDRESS"; var certificate = n
String serviceAccountEmail = "SERVICE ACCOUNT EMAIL ADDRESS";
var certificate = new X509Certificate2(@"KEY FILE NAME", "KEY SECRET", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { BigqueryService.Scope.Bigquery, BigqueryService.Scope.BigqueryInsertdata, BigqueryService.Scope.CloudPlatform, BigqueryService.Scope.DevstorageFullControl }
}.FromCertificate(certificate));
BigqueryService Service = new BigqueryService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "PROJECT NAME"
});
string query = "SELECT * FROM [publicdata:samples.github_timeline]";
JobsResource j = Service.Jobs;
QueryRequest qr = new QueryRequest();
string ProjectID = "PROJECT ID";
qr.Query = query;
qr.MaxResults = Int32.MaxValue;
qr.TimeoutMs = Int32.MaxValue;
DataTable DT = new DataTable();
int i = 0;
QueryResponse response = j.Query(qr, ProjectID).Execute();
如何选择大型数据集并以最佳方式将结果加载到Datatable中?担心BigQuery会抛出这些类型的错误,那么我们将如何100%信任我们的程序工作
通常,查询具有最大响应大小。如果你打算开一家
如果查询可能返回较大的结果,则可以设置allowLargeResults
在作业配置中设置为true
返回较大结果的查询执行时间会更长,即使
结果集很小,并且受到其他限制:
必须指定目标表。您不能指定顶层
订货依据、最高或限制条款。这样做否定了使用
allowLargeResults,因为无法再计算查询输出
同时。只有在以下情况下,窗口函数才能返回大型查询结果
与PARTITION BY子句结合使用
问题是Google.net客户端库是否支持将allowLargeResults添加到请求中。检查选项值
如果您的幸运儿是:
qr.allowLargeResults=true
不,我在Google.net客户端库中找不到QueryRequest的allowLargeResults。将其作为问题添加到客户端库在其他客户端库(如Java或PHP)中是否提供此功能?
String serviceAccountEmail = "SERVICE ACCOUNT EMAIL ADDRESS";
var certificate = new X509Certificate2(@"KEY FILE NAME", "KEY SECRET", X509KeyStorageFlags.Exportable);
ServiceAccountCredential credential = new ServiceAccountCredential(
new ServiceAccountCredential.Initializer(serviceAccountEmail)
{
Scopes = new[] { BigqueryService.Scope.Bigquery, BigqueryService.Scope.BigqueryInsertdata, BigqueryService.Scope.CloudPlatform, BigqueryService.Scope.DevstorageFullControl }
}.FromCertificate(certificate));
BigqueryService Service = new BigqueryService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "PROJECT NAME"
});
string query = "SELECT * FROM [publicdata:samples.github_timeline]";
JobsResource j = Service.Jobs;
QueryRequest qr = new QueryRequest();
string ProjectID = "PROJECT ID";
qr.Query = query;
qr.MaxResults = Int32.MaxValue;
qr.TimeoutMs = Int32.MaxValue;
DataTable DT = new DataTable();
int i = 0;
QueryResponse response = j.Query(qr, ProjectID).Execute();