2013-03-13 2 views
5

У меня есть широкий плоский стол, хранится в Google BigQuery в на следующие аналогичном формате:Как создать вложенную таблицу формата JSON с плоской таблицы в BigQuery?

log_date: целое число, SESSIONID: целое число, компьютер: строка, внутрибрюшинно: строка, event_id: целое число, количество: поплавок

Я пытаюсь создать таблицу в иерархическом вложенном формате, имеющие 2 уровней вложенности, следующим образом:

[ 
    { 
    "name": "log_date", 
    "type": "integer" 
    }, 
    { 
    "name": "session", 
    "type": "record", 
    "mode": "repeated", 
    "fields": [     
    { 
     "name": "sessionid", 
     "type": "integer" 
     }, 
    { 
     "name": "computer", 
     "type": "string" 
     }, 
     { 
     "name": "ip", 
     "type": "string" 
     }, 
     { 
    "name": "event", 
    "type": "record", 
    "mode": "repeated", 
    "fields": [ 
    { 
     "name": "event_id", 
     "type": "integer" 
    }, 
    { 
     "name": "amount", 
     "type": "float" 
    }]] } ] 

Что является лучшим способом для создания JSON файла в формате данные из BigQuery таблицы? Есть разные и быстрее, чем подход 1. загрузить таблицу во внешний файл CSV 2. Постройте JSON записи, и записать его в внешний файл 3. загрузить внешний файл JSON в новую таблицу BigQuery

Можем ли мы есть прямой процесс, который генерирует json из существующих таблиц?

Спасибо, H

ответ

1

Существует в настоящее время не способ автоматического преобразования данных в вложенный формат. Если вы хотите получить данные в формате json, а не в CSV, вы можете использовать экспортную оценку с флагом --destination_format, установленным на NEWLINE_DELIMITED_JSON. , например.

bq extract \ 
    --destination_format=NEWLINE_DELIMITED_JSON \ 
    yourdataset.table \ 
    gs://your_bucket/result*.json 
+0

Спасибо, но я предполагаю, что извлечение в формате JSON не будет поддерживать вложенную запись, что я пытаюсь построить, любые другие решения относительно того, как генерировать иерархическую таблицу, основываясь на плоском столе в Бк? – user2135521