WITH DATA AS (
SELECT id, foo, bar
FROM foobars
WHERE id = 99
)
SELECT
CONCAT('item_', CAST(id AS VARCHAR)) AS key,
ARRAY_AGG(
MAP(
ARRAY[
'id',
'foo',
'bar'
],
ARRAY[
CAST(id AS VARCHAR),
CAST(foo AS VARCHAR),
CAST(bar AS VARCHAR)
]
)
) AS value
FROM DATA;
Это форматирует два столбца, ключ и значение.
Значение напоминает строковый объект JSON.
'key', 'value'
'item_99', '{"id": "99", "foo", "a", "bar": "b"}'
Это удобно, потому что вы можете записать это в кеш в виде строки и прочитать значение прямо в вызов функции JSON.parse.
Два выпуска:
- Немного ограничивает необходимость ЗАКАЧИТЬ все в VARCHAR.
- Я не могу понять, как отформатировать столбец как Массив карт.
Есть ли JSON.stringify для массива карт в Presto?