powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Оптимизация структуры куба
12 сообщений из 12, страница 1 из 1
Оптимизация структуры куба
    #32825438
McLuad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет!

Спасибо всем за помощь в моих преведущих постах!
Новый вопрос по оптимизации структуры куба.
Предлагаю рисунок с фрагментом OLTP базы данных и вариант построения куба.

Атомарная таблица – Article. Грубо говоря в ней хранятся все обьявления, статьи. Анализ ведется на этом атомарном уровне - статьи.
Каждый article имеет связь в mediainstance и через mediainstance со всей другой метадатой.
Metadata представляет собой следующий список:
Section (table Section). Media Name (table media), MediaType (table mediatype), Country(table Country), Region (table region) и так далее.
То есть каждый article связан одновременно со вcеми metadata.Это для того что бы на одном графике можно бы ло бы посмотреть метадату, distributed by другая metadata.
Таблица фактов:
CREATE TABLE [fact_article] (
[record_id] [bigint] IDENTITY (1, 1) NOT NULL ,
[article_id] [numeric](18, 0) NOT NULL ,
[media_id] [numeric](18, 0) NOT NULL ,
[media_type_id] [int] NOT NULL ,
[publication_date_id] [bigint] NOT NULL ,
[section_id] [bigint] NOT NULL DEFAULT ((-1)),
[country_id] [bigint] NOT NULL ,
[region_id] [bigint] NOT NULL DEFAULT ((-1)),
[cod_mediainstance] [numeric](18, 0) NOT NULL ,
[media_instance_circulation] [numeric](18, 0) NULL ,
[eav] [numeric](18, 0) NULL ,
)

То есть как видно из скрипта по созданию fact_article каждый article связан со всеми метадатами вместе. А эти id я нахожу во время вставки в fact_table через inner join всех таблиц (Section, Country..) вместе с mediainstance and article.

Каждая метадата образует dimension.
Но сейчас я задался вопросом что можно здесь оптимизировать. А видимо можно, оставив только один cod_mediainstance и оставив только один dimension, основанный допустим на view который все собирает вместе (Country, Section., Region и mediainstance).
Но вопрос тогда каже мне получить в этом случае один metadata distributed by another?
И уменьшется ли в этом случае количество dimensions ?
Интуитивно чувствую что здесь можно оптимизировать, но пока не знаю как.
У кого будут какие-то идеи ?
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32825439
McLuad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Рисунок 2. CUBE
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32825475
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
для начала можно сделать Optimize Schema в редакторе кубов и поудалять таблицы которые удаляются.
Потом можно с партишинами поиграться и с Storage Design Wizard

А что собственно не устраивиет? Откуда желание оптимизировать возникло?
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32825484
McLuad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dmitry Biryukovдля начала можно сделать Optimize Schema в редакторе кубов и поудалять таблицы которые удаляются.
Потом можно с партишинами поиграться и с Storage Design Wizard

А что собственно не устраивиет? Откуда желание оптимизировать возникло?
Optimize Schema сказал что ничего нельзя оптимизировать.
Очень долго делется Rebuild Cube. Порядка 1 часа на 200 тысчах записей в fact table, а предпологается миллионы. В силу разных причин, делаю full rebuild вместе с галочкой Incremental Update Dimension.
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32826263
Фотография Валек
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
не понял смысл делать перестройку куба при каждой загрузке в куб, это следует из "Очень долго делется Rebuild Cube. Порядка 1 часа на 200 тысчах записей в fact table, а предпологается миллионы". Понимаю раз перестроить куб, и потом подгружать данные
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32826438
Dmitry Biryukov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
McLuad Dmitry Biryukovдля начала можно сделать Optimize Schema в редакторе кубов и поудалять таблицы которые удаляются.
Потом можно с партишинами поиграться и с Storage Design Wizard

А что собственно не устраивиет? Откуда желание оптимизировать возникло?
Optimize Schema сказал что ничего нельзя оптимизировать.
Очень долго делется Rebuild Cube. Порядка 1 часа на 200 тысчах записей в fact table, а предпологается миллионы. В силу разных причин, делаю full rebuild вместе с галочкой Incremental Update Dimension.
Читайте до конца, что я написал, создайте партиции и процесьте не целый куб, а одну партицию. Далее Storage Design Wizard.

McLuadВ силу разных причин, делаю full rebuild вместе с галочкой Incremental Update Dimension.
Эта галочка означает, что процессится не только куб, а учавствующие в нём общие измерения. Они действительно меняются?

В конце концов, подумайте что Вам важнее: время процессинга или скорость выполнения запросов?
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32827365
DeRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
McLuadУ кого будут какие-то идеи ?

Идеи будут, недавно с похожей проблемой сталкивался!

Во первых при создании "Таблицы фактов" (CREATE TABLE) ты используешь слишком большии типы данных "bigint, numeric", а это на прямую связано с временем обработки Cub-а, к примеру уменьшение строчки на 2 Byte уже может принести результат, а у тебя выходит если не ошибаюсь 99 Byts на строку, а их пока 200.000, а потом предпологается миллионы!
Вообщем по моему мнению можно пока обойтись и "integer"!

bigint
Число от -2^63 (-9223372036854775808) до 2^63-1 (9223372036854775807). Размер 8 Byte.

numeric
Точность
1 - 9 = 5 Byte
10-19 = 9 Byte - используется у тебя.
20-28 = 13 Byte
29-38 = 17 Byte

int
Число от -2^31 (-2.147.483.648) до 2^31 - 1 (2.147.483.647). Размер 4 Byte.

McLuadOptimize Schema сказал что ничего нельзя оптимизировать.
Так, хотел объяснить как это делается но врямя работы заканчивается, пора nach Hause! (завтра допишу, если конечно еще эта тема интересует.)
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32827533
Torin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поддерживаю DeRus, размер имеет значение..
Плюс вопрос - ключи имерений из таблицы фактов или свои ?. У меня здорово поднималась скокрость просессинга в первом случае ?
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32828439
DeRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
TorinПлюс вопрос - ключи имерений из таблицы фактов или свои ?

на 100% уверен ключи измерений (Member Key Column) у него из таблицы измерений (Dimension), потому-то и получается...
McLuadOptimize Schema сказал что ничего нельзя оптимизировать.

Для того чтобы Optimize Schema стала работать надо:

1. В Dimension, только для самого последнего уровня (Ebene) в свойстве (Member Key Column) укажи на ключ(id) из "таблицы фактов" для этого добавь сначала таблицу фактов и соедени её с таблицей измерений! (желательно ещё для свойства Member Key Unique установить True, иначе могут неправельные данные выдаваться!).

2. В Cube-Editor добавь новую Dimension (соединения с таблицей фактов установятся автоматически), после этого Optimize Schema (Extras -> Schema optimieren) должна работать. Но оптимизация будет выполнена только для тех Dimension где ты поменял (Member Key Column).

Если возникли неястности, спрашивай, попробую объяснить!


P.S.: Когда я тестировал эту (скажем так) опцию обрабатка "TEST" Cub-а уменьшилась на 37%!!!
Желаю УДАЧИ!!!
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32828471
Вжик
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если измерение общее, то получается нельзя сделать
Код: plaintext
 1 . В Dimension, только для самого последнего уровня (Ebene) в свойстве (Member Key Column) укажи на ключ(id) из "таблицы фактов" для этого добавь сначала таблицу фактов и соедени её с таблицей измерений! (желательно ещё для свойства Member Key Unique установить True, иначе могут неправельные данные выдаваться!).
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32828680
DeRus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВжикА если измерение общее, то получается нельзя сделать

если измерение будет использоваться в различных Cub-ах, и при этом использоваться разные "Таблицы фактов", то конечно лучше не изменять Member Key Column для этой общей Dimension. Но есле же "Таблицы фактов" в этих Cub-ах будут одинаковы, тогда я думаю что можно менять Member Key Column.
...
Рейтинг: 0 / 0
Оптимизация структуры куба
    #32829308
McLuad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Валекне понял смысл делать перестройку куба при каждой загрузке в куб, это следует из "Очень долго делется Rebuild Cube. Порядка 1 часа на 200 тысчах записей в fact table, а предпологается миллионы". Понимаю раз перестроить куб, и потом подгружать данные

К сожалению, такой случай не подходит. В задаче может быть так что данные в fact_table уже не актульны и могут быть удаленны посже. Каждый раз при при перестройке CUBE я чищу fact table на предмет соответсвия текущей ситуации.
Случай каждый день данные добавляются к уже существующим идеален, но к сожалению это не мой случай.
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Оптимизация структуры куба
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]