Запрос заголовков столбцов в GBQ - PullRequest
0 голосов
/ 13 декабря 2018

Можно ли сделать запрос, чтобы получить вывод с заголовками столбцов конкретной таблицы?Я загружаю несколько файлов на наш сервер через GBQ, и хотя он автоматически определяет заголовки, я хотел бы перечислить заголовки либо в строках, либо в виде разделенных запятыми ячеек.

Спасибо

1 Ответ

0 голосов
/ 14 декабря 2018

Я предполагаю, что ваши файлы в формате CSV, поэтому схема таблицы не имеет повторяющихся полей.Имея это в виду - ниже для BigQuery Standard SQL и требуется только полное имя таблицы

#standardSQL
SELECT 
  REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"') cols_as_array,
  ARRAY_TO_STRING(REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"'), ',') cols_as_string
FROM (SELECT 1) LEFT JOIN 
  (SELECT * FROM `project.dataset.table` WHERE FALSE) t
ON TRUE  

Если применить к некоторой реальной таблице, как в примере ниже

#standardSQL
SELECT 
  REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"') cols_as_array,
  ARRAY_TO_STRING(REGEXP_EXTRACT_ALL(TO_JSON_STRING(t), r'"(.+?)"'), ',') cols_as_string
FROM (SELECT 1) LEFT JOIN 
  (SELECT * FROM `bigquery-public-data.utility_us.us_states_area` WHERE FALSE) t
ON TRUE  

результат будет

Row cols_as_array           cols_as_string   
1   region_code             region_code,division_code,state_fips_code,state_gnis_code,state_geo_id,state_abbreviation,state_name,legal_area_code,feature_class_code,functional_status_code,area_land_meters,area_water_meters,internal_point_lat,internal_point_lon,state_geom   
    division_code        
    state_fips_code      
    state_gnis_code      
    state_geo_id         
    state_abbreviation       
    state_name       
    legal_area_code      
    feature_class_code       
    functional_status_code       
    area_land_meters         
    area_water_meters        
    internal_point_lat       
    internal_point_lon       
    state_geom    

Вы можете выбрать, какую версию использовать: список в виде массива или список в виде строки, разделенной запятыми

Также обратите внимание, что приведенный выше запрос вообще не несет никаких затрат!

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