关于 Bigquery datasetId 和 tableId
Posted
技术标签:
【中文标题】关于 Bigquery datasetId 和 tableId【英文标题】:Regarding Bigquery datasetId and tableId 【发布时间】:2020-06-22 02:21:17 【问题描述】: How do I get the datasetId and tableId from BigQuery. I tried to click the dropdown on the sidebar and copied the dataset info and table info, Is there any way, I can query the datasetId and tableId? but I got this error. I am using php client libraries to pull the BigQuery data.
如何从 BigQuery 获取 datasetId 和 tableId。我试着点击侧边栏的下拉菜单,复制了数据集信息和表信息,有什么办法可以查询datasetId和tableId吗?但我得到了这个错误。我正在使用 php 客户端库来提取 BigQuery 数据。
use Google\Cloud\BigQuery\BigQueryClient;
/** Uncomment and populate these variables in your code */
// $projectId = 'The Google project ID';
// $datasetId = 'The BigQuery dataset ID';
// $tableId = 'The BigQuery table ID';
// $maxResults = 10;
$maxResults = 10;
$startIndex = 0;
$options = [
'maxResults' => $maxResults,
'startIndex' => $startIndex
];
$bigQuery = new BigQueryClient([
'projectId' => $projectId,
]);
$dataset = $bigQuery->dataset($datasetId);
$table = $dataset->table($tableId);
$numRows = 0;
foreach ($table->rows($options) as $row)
print('---');
foreach ($row as $column => $value)
printf('%s: %s' . PHP_EOL, $column, $value);
$numRows++;
我收到此错误。
Google\Cloud\Core\Exception\BadRequestException :
"error":
"code": 400,
"message": "Invalid dataset ID \"mc-data-2:Turnflex\". Dataset IDs must be alphanumeric (plus underscores and dashes) and must be at most 1024 characters long.",
"errors": [
"message": "Invalid dataset ID \"mc-data-2:Turnflex\". Dataset IDs must be alphanumeric (plus underscores and dashes) and must be at most 1024 characters long.",
"domain": "global",
"reason": "invalid"
],
"status": "INVALID_ARGUMENT"
【问题讨论】:
似乎 mc-data-2 是您的 projectId,Turnflex 是您的 datasetId,但在您的代码中,datasetId 被选为 mc-data-2:Turnflex。我不知道 php 编码,但您需要修改一些内容,以便它选择正确的 datasetId。 【参考方案1】:根据PHP Google Cloud client 库文档正确的BigQueryClient() 类初始化,您可能需要传播$projectId
变量。如果针对任何 Biqguery 数据查询或发现操作,您可能会利用 query() 方法提交 Bigquery Job 与特定的自定义查询或明确定义 dataset() 和 table() 作为目标 Bigquery 位置。
确认@Priya Agarwal 的假设,我已经检查了您示例中的代码 sn-p 并且它按预期工作。一旦我与$datasetId
与tableId
共同暴露的变量建立连接,我就发现了您报告的类似错误:
$datasetId = 'datasetId:tableId'
代替:
$datasetId = 'datasetId'
【讨论】:
以上是关于关于 Bigquery datasetId 和 tableId的主要内容,如果未能解决你的问题,请参考以下文章