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

Привет! У меня есть сущность в программе (импортёр). Клиент может выбирать

из набора импортёра конкретные типы, которые забирают данные из разных endpoint-ов.
Я добавляю ETL в этот процесс и пишу данные в промежуточную БД, которую буду потом трансформировать, как мне буде удобно.

Мне нужно знать, какие таблицы в БД к каким импортёрам относятся. Как лучше построить эту связь?

16 ответов

28 просмотров

А обязательно таблицы?

Sven-d Автор вопроса
Gleb Fault
А обязательно таблицы?

Уточните вопрос, пожалуйста

Sven d
Уточните вопрос, пожалуйста

> Мне нужно знать, какие таблицы в БД к каким импортёрам относятся Вы хотите именно в таблицах хранить сущности или это не принципиально?

А в чем вопрос? Как лучше - хз, в условиях нет инфы что бы оценить

Sven-d Автор вопроса
Sergey P
А в чем вопрос? Как лучше - хз, в условиях нет инф...

вообще БД для ETL это тупо временная карманная база на sqlite. Ми забираем данные из datasource-ов (их может быть несколько), трансформируем в тот формат, которые будет удобен нашей системе и потом сливаем все данные в основную систему. Для бизнес логики нужно отображать клиенту инфу, про то, какие таблицы находятся в импортёре. Я пока что не знаю, где лучше эту инфу держать, как формировать эти связи и ТД.

Sven-d Автор вопроса

А почему не на лету создавать таблицы, которые содержат имя импортера или ид импортера? endpoint_1_{import_name} и т.д Соответственно если импортер состоит из разного количества эндпоинтов создать и каждый эндпоинт имеет разные данные, то по имени можно спокойно найти к какому эндпоинту отнести таблицу и какому импортеру и после обработки, просто грохнуть временную таблицу.

Sven-d Автор вопроса
Nikolay Turskyi
А почему не на лету создавать таблицы, которые сод...

Окей, был такой вариант Но есть вероятность, что таблицы могут быть персистентными (например, при повторном импорте будем забирать часть данных от конкретной даты)

Sven d
Окей, был такой вариант Но есть вероятность, что т...

Ну тогда относительно различных эндпоинтов, применяйте разные стратегии. Если не нужно рубить/удалять, то кладите в одну таблицу для эндпоинта и добавляйте ссылку на импортера. После обработки данных, к примеру, можно оставлять условно последнюю запись для загрузки в дальнейшем только от определенной даты. Вам нужно определиться с эндпоинтами, как вы в них ходите, где что "дешевле" по получению данных, что можно не кешировать, где эндпоинты залить себе, потому как для всех импортёров будут одни и те же данные и т.д.

Sven-d Автор вопроса
Sven d
screenshot

может вам пересмотреть модель и сделать как в прометее? т е самим ходить за данными из aggregation mechanism в каждый дата сорс

Sven-d Автор вопроса
Artur
может вам пересмотреть модель и сделать как в пром...

Не выйдет, к сожалению - механизм агрегации базируется полностью на sql. Интерфейсы получения из datasource могут быть разными (БД, файл, API)

А как это у вас механизм агрегации на SQL, а датасорс по API? Вы условный json ложите в реляционку в raw формате?

Sven-d Автор вопроса
Max Grom
А как это у вас механизм агрегации на SQL, а датас...

Если коротко, то да: почти все API возвращают нам плоскую структуру (некоторые в формате json, некоторые xml)

Sven d
Если коротко, то да: почти все API возвращают нам ...

Как тогда это противоречит идее выше где предлагается ходить самому? Общение по API у вас, судя по всему, уже есть, и судя по всему вы же и собираете эти данные

Sven-d Автор вопроса
Max Grom
Как тогда это противоречит идее выше где предлагае...

Тогда я, скорее всего, неправильно понял идею

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

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

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
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
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта