Postgres-вторник №13: пример работы с JSON в Postgres (+CTE, LATERAL, интервалы, GiST-индекс)
Разобран пример работы с JSON в PostgreSQL. JSON-ы приходят из сервиса Microsoft Video Indexer, куда отправляются видео-ролики. В итоге получаем JSON-документы, где есть распознанные тексты, с указанием координат на экране и интервалов времени. Нужно было ответить на вопросы: - какие были тексты и в какие моменты появлялся каждый из них? - какие тексты появлялись в момент времени ХХ:YY? Для SQL такое — раз плюнуть, ведь у нас есть GROUP BY, CTE, LATERAL, интервальные типы с возможностью индексирования. А значит, давайте быстрее затащим JSON в Postgres и будем крутить-вертеть данные так, как только хочется. Есть идеи, что ещё стоит разобрать? Добавляйте: http://bit.ly/RuPostgresTuesday! Ссылки: - код (там же данные для примера): https://gitlab.com/snippets/1957137 - дока по JSON-функциям и операторам: https://www.postgresql.org/docs/current/functions-json.html - дока по интервальным типам: https://www.postgresql.org/docs/current/rangetypes.html - данные были из Microsoft Video Indexer: https://vi.microsoft.com/ Уточнение: оператор пересечения интервалов, конечно, не ~~, как было заявлено, а && (https://www.postgresql.org/docs/current/functions-range.html#RANGE-OPERATORS-TABLE). Вот тут комментарий про это: https://gitlab.com/snippets/1957137#LC163
Название:
Postgres-вторник №13: пример работы с JSON в Postgres (+CTE, LATERAL, интервалы, GiST-индекс)
Категория:
Разное