Схема звезды в Python Pandas - PullRequest
0 голосов
/ 08 апреля 2020

В настоящее время у меня есть проект, в котором я извлекаю данные из базы данных Firebird и выполняю процесс ETL с Knime, затем файлы CSV импортируются в PowerBI, где я создаю связи таблиц и разрабатываю меры. С Knime я суммирую несколько таблиц, денормализуя. Я хотел бы полностью перейти на Python, я изучаю Pandas.

Я хотел бы знать, как иметь дело с реляционным моделированием в Python, например, звездной схемой. В PowerBI есть раздел, посвященный этому, где я устанавливаю sh отношения, указывающие, являются ли они однонаправленными или двунаправленными.

Единственное, о чем я могу думать, это работать в Pandas с объединениями в каждой требуемой ситуации / функции, но мне кажется, что должен быть лучший способ.

Я был бы признателен, если бы вы указали, что я должен научиться сталкиваться с этим.

1 Ответ

1 голос
/ 08 апреля 2020

Я думаю, что могу ответить на ваш вопрос сейчас, когда я лучше понимаю, что вы пытаетесь сделать в Python. Мой стек отчетов также включает в себя Python для операций ETL и Power BI для внешнего интерфейса, поэтому я подхожу к этому, даже если могут быть другие способы, о которых я не знаю.

Хотя я создавать фактические соединения в Power BI для модели данных, которую я использую, на самом деле нам ничего не нужно заранее сообщать Python. Power BI носит декларативный характер. Вы создаете визуализации, указывая, какую информацию вы хотите связать, и Power BI будет выполнять необходимые операции с бэкэндом для получения этих данных. Тем не менее, вам нужно дать ему минимальную информацию, чтобы сделать это. Таким образом, вы сообщаете Power Power так, как вы хотите, чтобы моделировались данные.

Python, напротив, является обязательным условием. Вместо того, чтобы сказать ему, что вы хотите в конце , вы говорите ему , какие инструкции вы хотите, чтобы он выполнил . Это означает, что вы должны сами дать все инструкции и вам необходимо знать модель данных.

Итак, простой ответ заключается в том, что вам не нужно заниматься реляционным моделированием. Более сложный и правильный ответ заключается в том, что вам необходимо спланировать инструменты ETL на основе логической модели данных . Логическая модель данных на самом деле не существует в одном физическом пространстве, например, как Power BI хранит то, что вам говорят. Это в основном сводится к тому, что вы знаете, как должны соотноситься таблицы, и гарантируете, что данные, хранящиеся в них, позволяют выполнять эти преобразования.

Когда наступит момент объединения таблиц в Python, выполните необходимые операции объединения, используя надлежащие функции (например, merge()) в сочетании с логической моделью данных, которая у вас в голове (или записана). ).

Ссылка, которую я включил сюда, является хорошим местом для начала исследования / изучения того, как думать о моделировании данных на более концептуальном уровне, который вам понадобится: https://www.guru99.com/data-modelling-conceptual-logical.html

...