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

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

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

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

16 ответов

8 просмотров

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

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
Как тогда это противоречит идее выше где предлагае...

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

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

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

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
короче сгенерила мне эта штука код на ассемблере: struc string val { common local .value dq .value .value: if ~val eq db val end if db 0 } fo...
Vi Chapmann Chapmann
12
Всем привет! Массив вводится с клавиатуры, кол-во элементов неизвестно, поэтому я указал arr db 100 dup(?) С нахождением максимума проблем нет, а вот минимум почему-то всегд...
En Vind Av Sorg
11
кто шарит: mattermost отслеживает что ты на пк запускаешь?
Valentin
13
Помогите, пожалуйста, делаю программу для для подсчёта корней квадратного уравнения, знаю, что есть куча недочётов, недоработок, но основная проблема в том, что почему-то при ...
NYC
13
#include <stdio.h> int main(void) { int n; scanf("%d", &n); int digits1[n] = {0}; int digits2[n] = {0}; я не могу таким образом заранее массив нулями заполнить?
Linus
12
в сях есть множество как в питоне? для удаление дубликатов
Linus
25
читать файл максимально быстро? странный вопрос))
zamtmn
53
я про форму записи. смысл указывать что 8 байтный регистр 8 байт?
Aiwan \ (•◡•) / _bot
10
Вроде бы вопрос уже заезжанный, но тем не менее У меня есть функция menu() которая выводит набор возможных действий, а затем спрашивает у пользователя что он хотел бы сделать....
David Golovatin
5
Карта сайта