|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Здравствуйте! Уже не один раз задавался вопросом - Как разбивают таблицу на факт и справочники? Пример в файле Excel. На листе Выгрузка - исходная таблица. На втором листе исходник разбит на 5 таблиц. Поделитесь опытом как лучше решать такие задачи. Или покажите как это сделать запросом. Может ссылка на видео-инструкцию есть? И еще вопрос - если за год набирается не более 15 000 строк в исходной таблице, то может и не надо делить данные на справочники и факт? Вес в мегабайтах же немного? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2021, 20:36 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Михаил Л, https://ru.wikipedia.org/wiki/Схема_звезды https://ru.wikipedia.org/wiki/Схема_снежинки если за год набирается не более 15 000 строк в исходной таблице, то может и не надо делить данные на справочники и факт, а может и надо. Это вам решать в зависимости от планов на будущее и требований к оборудованию. К тому же когда/если потребуется позже внедрить SCD то вышеописанные приёмы и механизмы будут удобны либо необходимы. Управление правами доступа может упростить / потребовать разделение таблиц. Много их там этих моментов. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2021, 21:17 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
PizzaPizza, про эти схемы я знаю. Мне бы на каком нибудь небольшом примере посмотреть процесс обработки. Что бы определить стоит ли заморачиваться разбивать, а потом для каких нибудь калькуляций джойнить обратно. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.03.2021, 22:40 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Михаил Л стоит ли заморачиваться разбивать, а потом для каких нибудь калькуляций джойнить обратно. Если это вопрос "заморачиваться", то скорее всего уровень задачи при котором разбивать не стоит. Разбивать стоит если есть понимание для чего существуют схемы и когда их применять. На небольшом примере определиться с пониманием для чего ну никак не получится. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 06:10 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
PizzaPizza, Я в ms sql не работаю каждый день, поэтому как не коснется мне все в ms sql кажется трудным и замороченным. Работаю в основном в excel. Рано или поздно все равно к этому (оптимизации базы данных путем минимизации повторений значений, то бишь разбивки данных на справочники и факт. Как я себе это понимаю) приду. Вот и собираю инфу заранее ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 10:12 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Михаил Л PizzaPizza, про эти схемы я знаю. Мне бы на каком нибудь небольшом примере посмотреть процесс обработки. Что бы определить стоит ли заморачиваться разбивать, а потом для каких нибудь калькуляций джойнить обратно. Пока у вас данные каждой строки в Эксельной таблице независимы от других строк, т.е. пока вам не понадобится что либо посчитать, вам никакого разбиения не нужно. Например, у вас в таблице есть поля заказчик, сумма, валюта. Если вам считать не надо, то всё нормально, и ничего страшного, что Иван Иванов, Ваня Иванов, и Иванов И - это не три человека, а один. И что в одном месте в поле валюта написано "$", а в другом "Доллары США". Если считать не надо. Но если вы хотите считать агрегаты по клиентам, или список заказа по клиентам, или сводить дебит-кредит, то лучше сделать справочник клиентов, справочник валют и т.д. Что бы не решать ребусы, сколько же всё таки у Иванова заказов. Разные правила заполнения значений полей эту проблему иногда решают, но, по сути, правила и есть ссылка на справочник, только на чужой, а не на ваш. Например, для валют можно использовать официальный код валюты. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 12:09 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
alexeyvg и ничего страшного, что Иван Иванов, Ваня Иванов, и Иванов И - это не три человека, а один. И что в одном месте в поле валюта написано "$", а в другом "Доллары США" C такими данными боюсь работать). Вообще данные из файла выгружены из 1с и обработаны в прямую таблицу в PQ. До PQ в каждой строке - одна счет-фактура. Данные точные - задваиваний не найдено. У меня уже подготовлены данные за пять лет. Держу их цельной таблицей в SQL-базе, Access-базе и файле TXT. Чаще использую текстовый файл Отдельно запросом PQ обрабатываю текущий год. И плюсую к данным текстового файла. Далее Power Bi или Power Pivot + Excel. Меня все устраивает, а руководство вот мне все рассказывает как у конкурентов или партнеров настроено в Sql базе. Я в принципе для руководства и сделал вариант Sql - базы. Сейчас вот думаю разбить на справочники и факт. Один раз разбить и загнать в отдельные таблицы - не большая проблема. Только не знаю как далее пополнять факты, проверять справочники на наличие новых клиентов или нового города. Мне легче все таблицы базы очистить и снова заполнить уже с новыми фактами, городами, клиентами. Пока не понимаю как именно дополнять. Поэтому и ищу видеоинструкцию или др. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 13:55 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Михаил Л, В справочники выделяются колонки, смысловые значения которых повторяются в строках, такие как адреса, персональные данные, название организаций, типы товаров и так далее. Таблица фактор содержит состояние этих данных. Справочник - "дом", справочник "адрес", факт значение - "построен в 1950 году", факт ссылка - справочник адресов. Разделение данных на справочники и факты выполняется согласно смысла этих данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 14:22 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Михаил Л, у вас какой-то очень спортивный интерес )) если я правильно понял, то изначально данные лежат в 1С. какие задачи вы выполняете выгружая эти данные в текст/эксель/другую БД? нет ли возможности решить эти задачи средствами 1С ? что касается вашего вопроса, то насколько я понимаю, данные в MSSQL сервер вы каким-то образом вгоняете, т.е. имеется некий обработчик, который берет данные на стороне (1С) и втягивает их в одну таблицу. допустим вы решите нормализовать данные и добавите еще таблиц, по идее вам остается всего-лишь изменить тот обработчик, чтобы он данные распихивал по нескольким таблицам. задача так стоит, правильно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 14:43 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Владислав Колосов Михаил Л, В справочники выделяются колонки, смысловые значения которых повторяются в строках И справочники нужны чтобы уменьшить размер базы данных? Я прав? Мне кто-нибудь даст ссылку на инфу, где можно узнать как сделать справочники и факты и как это потом обслуживать ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 14:44 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
MoonRabbit если я правильно понял, то изначально данные лежат в 1С. какие задачи вы выполняете выгружая эти данные в текст/эксель/другую БД? нет ли возможности решить эти задачи средствами 1С ? Долгая история. Расскажу в двух словах. Все данные в 1с. Приходящий программист 1с получает оплату почасовую. Я, иксельщик, на окладе. Без программиста из 1с отчетом можно выгружать данные за период, но эти данные надо еще причесывать в Power Query. Я уже все данные за несколько лет подготовил и храню в текстовом файле. С этими данными, по требованию, могу строить сводные в течение 5-60 минут. Так обычно и происходит - продукт-менеджеры просят сделать какой либо отчет и уже минут через 15 получают его. Не знаю сколько времени потребуется программисту 1с построить сводные в 1с. Мы этого программиста видим то 2-3 раза в месяц. MoonRabbit данные в MSSQL сервер вы каким-то образом вгоняете, т.е. имеется некий обработчик, который берет данные на стороне (1С) и втягивает их в одну таблицу. допустим вы решите нормализовать данные и добавите еще таблиц, по идее вам остается всего-лишь изменить тот обработчик, чтобы он данные распихивал по нескольким таблицам. задача так стоит, правильно? Да, все правильно. Даже больше. У меня база уже состоит из справочников и факта. Таблицы подготавливаю в Power Query, выгружаю в Excel(как в файле на листе Наверное так) и загоняю макросом (insert построчно) в базу. В Vba я плох, но что надо нашел и настроил. Хотел бы обойтись без Power Query. То есть обработанную таблицу на листе Выгрузка одним Sql - запросом разложить по таблицам в базу. Как то так. Ищу примеры чтобы посмотреть ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 15:17 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Михаил Л MoonRabbit данные в MSSQL сервер вы каким-то образом вгоняете, т.е. имеется некий обработчик, который берет данные на стороне (1С) и втягивает их в одну таблицу. допустим вы решите нормализовать данные и добавите еще таблиц, по идее вам остается всего-лишь изменить тот обработчик, чтобы он данные распихивал по нескольким таблицам. задача так стоит, правильно? Да, все правильно. Даже больше. У меня база уже состоит из справочников и факта. Таблицы подготавливаю в Power Query, выгружаю в Excel(как в файле на листе Наверное так) и загоняю макросом (insert построчно) в базу. В Vba я плох, но что надо нашел и настроил. Хотел бы обойтись без Power Query. То есть обработанную таблицу на листе Выгрузка одним Sql - запросом разложить по таблицам в базу. Как то так. Ищу примеры чтобы посмотреть что мне нравиться в работе с данными, так это то, что любую задачу можно решить несколькими способами. в вашем случае: 1. полученный excel раздербанить на месте на нужные данные в соответствии с таблицами в БД и несколькими движениями втягивать потаблично. способ дурной на мой взгляд 2. средствами MSSQL (например через bulk insert) втянуть все данные в промежуточную таблицу и уже оттуда раскидать по целевым. способов втянуть данных несколько, рекомендую вот это почитать: https://docs.microsoft.com/ru-ru/sql/relational-databases/import-export/bulk-import-and-export-of-data-sql-server?view=sql-server-ver15 и здесь много раз обсуждался импорт и местами последующая обработка: https://www.sql.ru/forum/afsearch.aspx?s=?????? ?? excel&submit=?????&bid=1 Михаил Л MoonRabbit если я правильно понял, то изначально данные лежат в 1С. какие задачи вы выполняете выгружая эти данные в текст/эксель/другую БД? нет ли возможности решить эти задачи средствами 1С ? Долгая история. Расскажу в двух словах. Все данные в 1с. Приходящий программист 1с получает оплату почасовую. Я, иксельщик, на окладе. Без программиста из 1с отчетом можно выгружать данные за период, но эти данные надо еще причесывать в Power Query. Я уже все данные за несколько лет подготовил и храню в текстовом файле. С этими данными, по требованию, могу строить сводные в течение 5-60 минут. Так обычно и происходит - продукт-менеджеры просят сделать какой либо отчет и уже минут через 15 получают его. Не знаю сколько времени потребуется программисту 1с построить сводные в 1с. Мы этого программиста видим то 2-3 раза в месяц. 1С не хотите освоить? )) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 15:49 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Может тредстартеру чего-нибудь про нормальные формы почитать? Из реляционной теории... Люди старались - писали. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 16:11 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
MoonRabbit 1С не хотите освоить? )) Если честно - нет) Хотел бы Dax побольше изучить, но свободного времени на работе мало, а дома вечером уже не лезет. К тому же у нас конфигуратор запаролен. Из Excel у меня есть доступ к серверу 1с, но там и черт ногу сломает (чего стоят ключи из случайнонабранных значений). Мне в 1с нужен только один настроенный отчет(данные по продажам за последние день или неделю). За другим я не обращаюсь в 1с. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 16:20 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
aleks222 Может тредстартеру чего-нибудь про нормальные формы почитать? Из реляционной теории... Люди старались - писали. мне бы видео какое-нибудь. От Специалист нет видео, где не спеша и не уставая в течение дня все рассказывают, как по ссылке ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 16:26 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
MoonRabbit 2. средствами MSSQL (например через bulk insert) втянуть все данные в промежуточную таблицу и уже оттуда раскидать по целевым. По моему, это то что нужно. Если не против, в течение недели я подготовлю пример, сможете показать как запросом это делается? Пример будет тот же, на 8 колонок. Строк сделаю побольше. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 16:52 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Михаил Л Вообще данные из файла выгружены из 1с и обработаны в прямую таблицу в PQ. До PQ в каждой строке - одна счет-фактура. Данные точные - задваиваний не найдено. У меня уже подготовлены данные за пять лет. Держу их цельной таблицей в SQL-базе, Access-базе и файле TXT. Чаще использую текстовый файл Отдельно запросом PQ обрабатываю текущий год. И плюсую к данным текстового файла. Далее Power Bi или Power Pivot + Excel. Меня все устраивает, а руководство вот мне все рассказывает как у конкурентов или партнеров настроено в Sql базе. Я в принципе для руководства и сделал вариант Sql - базы. Какой нибудь SQL-сервер тут полезен разве что для мощного и удобного движка и языка, но нормализовать необязательно, если вам так удобнее работать с данными. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 20:45 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
[quot Михаил Л#22291213] aleks222 Может тредстартеру чего-нибудь про нормальные формы почитать? Из реляционной теории... Люди старались - писали. мне бы видео какое-нибудь. ======= Наконец-то вспомнили, что такое Реляционная БД. Но ТС не умеет читать!!! Кто-то пишет здесь за него((((((( "Мне бы видео" ... |
|||
:
Нравится:
Не нравится:
|
|||
08.03.2021, 21:12 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
MoonRabbit 2. средствами MSSQL (например через bulk insert) втянуть все данные в промежуточную таблицу и уже оттуда раскидать по целевым. Михаил Л По моему, это то что нужно. Если не против, в течение недели я подготовлю пример, сможете показать как запросом это делается? Пример будет тот же, на 8 колонок. Строк сделаю побольше. Подготовил пример. В двух файлах - Сначала запустить Документ1, затем Документ2. Все что мог сделал. Хотел бы увидеть как запросом раскидать из временной таблицы(Название такое, Таблица не временная, а промежуточная) в итоговые. Наверное, должна быть проверка на дублирование. Прошу показать как решить эту задачу на примере. Желательно упрощенно(как у меня в примере) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2021, 13:06 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
alexeyvg Если речь не об оперативной базе, а о рид-онли витрине, то руководство неправо (насчёт нормализации). Какой нибудь SQL-сервер тут полезен разве что для мощного и удобного движка и языка, но нормализовать необязательно, если вам так удобнее работать с данными. Руководство хочет нас постоянно чем нибудь нас занимать. Наверное их устроит если я задачи буду решать дольше чем мог бы) Не прикрепилось сразу два файла. Вот второй файл ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2021, 13:12 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
опять) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2021, 13:15 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
ИВП "Мне бы видео" Мне вот видео легче воспринимается чем чтение. Или наглядные рисунки типа комиксов) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2021, 14:57 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Неужели задача трудная для профессионалов? Прошу помочь с решением Может с примером что не так? При заполнении от даты остается только год. Для примера это не принципиально. Надо было мне и дату обернуть в одинарные кавычки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2021, 04:38 |
|
Как правильно и практично разбить исходную таблицу на табл-факт и табл-справочники
|
|||
---|---|---|---|
#18+
Михаил Л Неужели задача трудная для профессионалов? Прошу помочь с решением Может с примером что не так? При заполнении от даты остается только год. Для примера это не принципиально. Надо было мне и дату обернуть в одинарные кавычки. Никто не будет разжевывать тебе прописные истины реляционной теории. Для этого писаны учебники. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2021, 06:04 |
|
|
start [/forum/topic.php?fid=46&msg=40052137&tid=1684943]: |
0ms |
get settings: |
8ms |
get forum list: |
11ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
62ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
others: | 14ms |
total: | 168ms |
0 / 0 |