Как объединить объекты JSON в Redhift? - PullRequest
0 голосов
/ 01 июля 2018

Допустим, у меня есть две строки

Account | usage | usage by user      | usage month
1       | 20    |  { "a":10, "b":10} | Jan
1       | 25    |  { "a": 15, "c":10}| Feb

Я хочу написать запрос, чтобы получить общее использование как

1       | 45    | { "a" : 25, "b" :10, "c":10} 

Я могу получить использование с помощью SUM и группировать по счету. Но я не уверен, как объединить объекты json в Redshift . Любые указатели о том, как это сделать?

1 Ответ

0 голосов
/ 02 июля 2018

В Amazon Redshift нет собственного способа сделать это. Кроме того, я рекомендую вам НЕ делать это в Redshift.

Поля JSON трудно интерпретировать в Redshift. Вам нужно использовать функцию типа JSON_EXTRACT_PATH_TEXT для извлечения элементов из JSON. Он совершенно неэффективен и не использует возможности Redshift для оптимизации запросов.

Если вы сохраняете такое поле для хранения отношений значения 1-ко-многим , было бы лучше создать отдельную таблицу использования *, содержащую 1016 * информация об использовании для каждой учетной записи и пользователя. Затем присоединитесь к этой таблице в ваших запросах. Это обычный SQL - ничего общего с Redshift не имеет.

Например, см .: Создание нескольких таблиц и связей таблиц

...