185 похожих чатов

Коллеги, а я вот что-то подзапутался. Есть ли сейчас какая-то БД,

в которую можно запушить в таблицу/коллекцию JSON, а потом иметь к нему SQL доступ? Это нужно как стейджинг для сбора данных до того, как корежить основную Clickhouse таблицу, соответственно данных там будет мало, до миллиона строк.


Постгрес - это хорошо, но если я запихну объект в json поле, то нужен очень специфичный синтаксис, который не сделать унифицированным с кликхаусом и нужен ORM.

27 ответов

18 просмотров

джисон ту мап и не надо оэрэмить на ровном месте

Maksim-Lapshin Автор вопроса
john conor 
джисон ту мап и не надо оэрэмить на ровном месте

поясни пожалуйста, что именно гуглить?

Так Бартунов вроде рассказывал, что они много хорошего для работы с jsonb сделали, в том числе для запросов по самому джсону. Или предполагается ещё бо́льшая вложенность?

ttt161
Так Бартунов вроде рассказывал, что они много хоро...

Постгрес давно умеет в json, но унифицированного с кликхаусом интерфейса нет, речь же о том чтобы прозрачно ходить и туда и сюда, если я правильно понял.

Maksim-Lapshin Автор вопроса
ttt161
Так Бартунов вроде рассказывал, что они много хоро...

мы льем 100 тыс записей в секунду в кликхаус. Иногда эту таблицу надо менять, добавлять новые поля. Хочется сделать так, чтобы можно было протестить, что вообще будет заливаться без миграций БД. Можно или сделать какой-то принимающий сервер, который будет, увидев новое поле, автоматически мигрировать стейджинговый кликхаус (ну рано или поздно он провернет это на проде), или писать стейджинговые данные не в кликхаус, а в другую БД, которая по своему SQL не катастрофически отличается от кликхауса. Условно считаем, что у постгреса и мускля достаточно одинаковый SQL для простых задач. Записать поток тестовых данных в постгрес можно, но тогда надо будет весь читающий код переделать на ORM, который будет с кликом по одному работать, а с постгресом через раскрытие json поля.

Если устроит ограниченный SQL, который имеет Elastic Search, то можно его попробовать.

Denis
Постгрес давно умеет в json, но унифицированного с...

Умеет то он давно, а оптимизации от Postgres pro в ванильный постгрес заехали относительно недавно. Но оптимизации это всё таки не про унификацию, так что да, я про другое

Maksim-Lapshin Автор вопроса
Maksim Lapshin
мы льем 100 тыс записей в секунду в кликхаус. Иног...

а что под "увидев новое поле" подразумевается? у принимающей строны есть старая схема и она видит новую колонку в датасете?

Maksim-Lapshin Автор вопроса
Иванов
а что под "увидев новое поле" подразумевается? у п...

да, есть старая схема, а тут приехали новые данные от флюссоника, который ещё в ветке запущен

InfluxDB?

Maksim-Lapshin Автор вопроса
Dmtr
InfluxDB?

я посмотрю, спасибо

Maksim Lapshin
да, есть старая схема, а тут приехали новые данные...

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

Maksim-Lapshin Автор вопроса
Иванов
ты хочешь делать пробную запись и чтение и если ок...

потому что тогда надо будет кроме редактирования флюссоника ещё и миграции в кликхаусе гонять. А если получится лить в коллекцию жсонов, то проверить, что уходит, _возможно_ получится и без этого

Maksim Lapshin
потому что тогда надо будет кроме редактирования ф...

а, типа бесхемное тебе надо. понял. тогда еластик, посмотри couch еще, он кстати эрланговый

Maksim-Lapshin Автор вопроса
Иванов
а, типа бесхемное тебе надо. понял. тогда еластик,...

да, хочу вообще без схемы. Как вариант - принимать поля и делать автомиграцию в клике, если что-то новое приехало, но это стремновато звучит

Maksim Lapshin
мы льем 100 тыс записей в секунду в кликхаус. Иног...

А нельзя сделать View в PostgreSQL, которая раскрывает JSON поле в ту же структуру, которая в Clickhouse?

Maksim-Lapshin Автор вопроса
Alexey Golubev
А нельзя сделать View в PostgreSQL, которая раскры...

полагаю, что этот view будет требовать заведомого знания списка полей. С таким знанием я и в клик всё залью

Maksim Lapshin
да, хочу вообще без схемы. Как вариант - принимать...

С подтверждением от человеческого существа ака оператора — вполне, совсем автоматически чревато.

такое еще https://github.com/tarantool/avro-schema

Maksim-Lapshin Автор вопроса
Иванов
такое еще https://github.com/tarantool/avro-schema

я как раз хочу без схемы залить

Maksim Lapshin
я как раз хочу без схемы залить

ну тут про другое - тут как раз сравнение мутация схем

Maksim-Lapshin Автор вопроса
Maksim Lapshin
ага. Это сложная и важная тема, да

как я понял ты хочешь датасет в виде json документа проверять SQL лем, на предмет доступности данных, а можно наоборот - конвертить схему ch в json и пытаться валидировать ею схему датасета. первый вариант не дает гарантии, что таки запишется, а второй что прочитается

Maksim Lapshin
мы льем 100 тыс записей в секунду в кликхаус. Иног...

Задача напоминает сбор данных в даталейк. Типичное решение это наложение некоторых правил и ограничений на то как может меняться сообщение, таким образом, чтобы при получении его новой версии пишущий процесс мог автоматически смигрировать схему целевой таблицы. Эти правила и ограничения, можно проверять тулингом, при изменении схемы сообщений. Т.е если тула пишет что всё ок, схему точно можно будет успешно смигрировать.

Maksim Lapshin
мы льем 100 тыс записей в секунду в кликхаус. Иног...

А вы не пробовали это через вьюхи сделать просто в кликхаусе?

Похожие вопросы

Обсуждают сегодня

А есть ли способ заставить конечный класс в иерархии классов реализовать все, всё ещё не реализованные абстрактные методы? самый простой пример: program Project1; {$mode delph...
notme
58
Добрый вечер. Прошу помощи у неравнодушных - являюсь просто пользователем сайта на данной платформе, просто выкладываю туда инфо, новости. Ничего не понимаю в ваших формулах, ...
Надежда
24
what do you do for keep coding? i after 5~10 minutes get tired and waste 30 minutes on internet, watching movies, etc
Mr Thieves
18
хочу поделиться нашими свежими цифрами по использованию dets В базу данных пишется неширокая строка: имя потока, имя файла, таймстемп. в код закралась ошибка и база данных...
Maksim Lapshin
14
Список чатов, например, в каком формате?
The Bird of Hermes
16
Согласны ли вы, что любой инженер-программист должен понимать код на ассемблере, устройство процессора, ОС и тд? Т.е должен знать базу
Ghost
42
my $source = "127.0.0.1:12345"; $source =~ /(.*?):(\d+)/; print "Result: " . Dummy::test($1) . "\n"; "$1"; print "Result: " . Dummy::test($1) . "\n"; $ perl test-xs.plx Usel...
Warstone
6
program Project1; type TRec = record class procedure method; static; inline; end; TMyClass<T> = class R: T; procedure proc; end; procedure TMyClass<T>.pro...
notme
7
Итак... понадобилось мне примерно следующее: program Project1; type TMyClass1 = class class procedure instance_proc; static; inline; procedure DoWork; end; TMyCl...
notme
5
Why does tiktok give you other information of a profile on mobilephone than the desktop, if someone mind me asking?
Witold ♥️🩷
11
Карта сайта