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

Всем привет, у меня такой вопрос, как хранить данные когда

они динамически типизированы?

Например, есть вот такой payload

{
"name" : "intMetric",
"value" : 1,
"type" : "Int32"
}

( это Protobuf )

Данные в value могут быть как Boolean, так и Float, Double.

Есть какие то best practices?

14 ответов

18 просмотров

Не видел такого описанного. Но из общих соображэний — предлагаю выдать люлей человеку, который в колонку с префиксом int пихает double.

Oleksandr-Serdiuk Автор вопроса
Ilya Anfimov
Не видел такого описанного. Но из общих соображэн...

Это не человек, это спецификация Sparkplug, обычно все совпадает по типам, просто не могу придумать ничего кроме как создать несколько колонок с типами, и суффиксами int, bool, etc

Oleksandr Serdiuk
Это не человек, это спецификация Sparkplug, обычно...

ЯННП. Что значит "не человек". А что человек написал?

Oleksandr-Serdiuk Автор вопроса
Ilya Anfimov
ЯННП. Что значит "не человек". А что человек напи...

Ну логично что если будут данные double, то там будет не будет префикса int, я прислал пример конкретно с int данными 😅

Oleksandr Serdiuk
Это не человек, это спецификация Sparkplug, обычно...

Ну, и вообще — если это данные — то извлеките из них тип на этапе проектирования. Если лог какой-то чего-то, где можэт быть что угодно — то это не реляцыонные данные, можно строкой всё хранить, потом в данные преобразовывать.

Oleksandr Serdiuk
Ну логично что если будут данные double, то там бу...

Выяснить, какие данные будут — и создать под них соответствующее поле.

Oleksandr-Serdiuk Автор вопроса
Ilya Anfimov
Выяснить, какие данные будут — и создать под них с...

Или юзать что-то другое, не Postgres, если заранее неизвестно какие данные будут?

Oleksandr Serdiuk
Или юзать что-то другое, не Postgres, если заранее...

Если не упрётесь в производительность, проблемы синхронизацыи и хаос в данных — то и замечательно. Если упрётесь — сдадитесь опытному DBA, он спроектирует приличную схему под постгрес с учётом вашэго практического опыта.

Oleksandr-Serdiuk Автор вопроса
Ilya Anfimov
Как например.

Оке, спасибо за помощь

Oleksandr-Serdiuk Автор вопроса
Ilya Anfimov
Если не упрётесь в производительность, проблемы си...

Да хаоса быть не должно, данные по сути это временной ряд датчиков сенсоров. И они четко структурированы. Просто тип данных может быть одним из 12 или даже 24, согласно спецификации, и это усложняет задачу немного, так как под эти данные нужно будет писать триггер alerting

Oleksandr-Serdiuk Автор вопроса

Timescaledb показался более простым из-за схожести с Postgres

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

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

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
Ребят в СИ можно реализовать ООП?
Николай
33
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта