Как прочитать представление BigQuery с помощью BigQuery REST API?

#api #rest #view #google-bigquery

#API #rest #Вид #google-bigquery

Вопрос:

У меня есть таблица BQ configuration в MAPPINGS и ее представление config_vw в SHARED_VIEWS наборе данных.

Теперь я пытаюсь прочитать таблицу и ее представление, используя URI REST API.

Запрос таблицы GET https://bigquery.googleapis.com/bigquery/v2/projects/data-dev2/datasets/MAPPINGS/tables/configuration/data отвечает правильно.

Но когда я делаю GET https://bigquery.googleapis.com/bigquery/v2/projects/data-dev2/datasets/SHARED_VIEWS/tables/config_vw/data для представления, это выдает ошибку ниже.

 {
  "error": {
    "code": 400,
    "message": "Cannot list a table of type VIEW.",
    "errors": [
      {
        "message": "Cannot list a table of type VIEW.",
        "domain": "global",
        "reason": "invalid"
      }
    ],
    "status": "INVALID_ARGUMENT"
  }
}
  

Пожалуйста, подскажите, как получить доступ к BQ view с помощью REST API?

С уважением, San

Ответ №1:

Ожидается, что вы не сможете извлекать данные из представления с помощью tabledata.list REST API.

ПРЕДСТАВЛЕНИЕ — это, по сути, «сохраненный запрос», который вам нужно выполнить, чтобы преобразовать его в таблицу, прежде чем вы сможете использовать tabledata.list для извлечения его данных.

Например, вы можете использовать jobs.insert API для выполнения запроса типа

 CREATE TABLE SHARED_VIEWS.materailized_config_vw
AS SELECT * FROM SHARED_VIEWS.config_vw
  

Затем вы можете прочитать SHARED_VIEWS.materailized_config_vw с помощью tabledata.list.