Google BigQuery - ListProjects возвращает только 1 запись - PullRequest
1 голос
/ 06 мая 2020

Я хочу перечислить все проекты, к которым у меня есть доступ, но он возвращает только 1 запись, когда я вызываю метод ListProjects из класса BigQueryClient.

Я проверяю, что у меня есть доступ как минимум к 2 проектам, пытаясь для запуска приведенного ниже кода:

BigQueryClient client = BigQueryClient.Create("project1");
var result = client.ExecuteQuery("SELECT col1 FROM `project1.dataset1.table1`", null) //this returns the data from project1
BigQueryClient client = BigQueryClient.Create("project2");
var result = client.ExecuteQuery("SELECT col1 FROM `project2.dataset2.table2`", null) //this returns the data from project2

Оба приведенных выше кода возвращают данные. Но когда я пытаюсь получить все проекты с помощью метода ListProjects, он возвращает только 1 запись:

BigQueryClient client = BigQueryClient.Create(string.Empty);

var projects = client.ListProjects(); //this method only returns 1 record

В моем коде что-то отсутствует, чтобы я мог видеть все проекты из Google BigQuery?

Ответы [ 2 ]

1 голос
/ 16 мая 2020

Строка . Пусто или не имеет значения в BigQueryClient.Create не имеет значения. Он должен иметь роль в проекте GCP, которую вы хотите включить в учетную запись службы.

В моем случае я выполняю следующие шаги: от

  1. Go до Google Cloud Platform -> IAM & Admin -> Управление ресурсами
  2. Выберите проект, который вы хотите включить
  3. Щелкните Добавить участника кнопку
  4. Введите учетную запись службы
  5. Выберите Роль . Я выбираю Средство просмотра метаданных BigQuery
  6. Нажмите кнопку Сохранить .

Перед тем, как он вступит в силу, есть задержка примерно на 2 минуты.

0 голосов
/ 11 мая 2020
BigQueryClient client = BigQueryClient.Create(string.Empty);
BigQueryClient client = BigQueryClient.Create("irrelevant");
PagedEnumerable<ProjectList, CloudProject> projects = client.ListProjects();
foreach (CloudProject project in projects)
{
    Console.WriteLine($"{project.ProjectId}: {project.FriendlyName}");
}

попробуйте другое go в свой старый проект и включите большой запрос. BigQuery автоматически включается в новых проектах. Чтобы активировать BigQuery в уже существующем проекте, go для включения BigQuery API.

https://github.com/GoogleCloudPlatform/dotnet-docs-samples/tree/468bcdc02567a8e337bfa43db3fd523298265225/bigquery/api

Я думаю, вы предоставляете правильный идентификатор проекта или услугу ключ. https://cloud.google.com/bigquery/docs/authentication/service-account-file

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...