Добавить данные в массив JSON в Redshift - PullRequest
0 голосов
/ 06 сентября 2018

У меня есть таблица Redshift, в которой один из столбцов является массивом JSON. Я хотел бы добавить некоторые данные в этот массив. Например:

id | col1 | col2
1  | A    | {"key": []}
2  | B    | {"key": []}
3  | B    | {"key": ['A']}
4  | B    | {"key": ['A', 'B']}

Я хотел бы создать утверждение типа UPDATE <table> SET col2 = <something> where col1 = 'B', чтобы получить:

id | col1 | col2
1  | A    | {"key": []}
2  | B    | {"key": ['C']}
3  | B    | {"key": ['A', 'C']}
4  | B    | {"key": ['A', 'B', 'C']}

1 Ответ

0 голосов
/ 07 сентября 2018

Вы должны написать свою собственную Определяемую пользователем функцию (UDF) , передав текущее значение столбца и элемента, который вы хотите добавить, и затем вернув результат.

Однако вам действительно следует избегать столбцов JSON в Amazon Redshift, если это вообще возможно. Они не могут использовать все функции, которые делают Redshift великолепным (столбчатые, SORTKEY и т. Д.). Кроме того, у вас будут такие проблемы, которые не входят в сферу реляционных баз данных.

...