Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
Всем привет! Спасибо всем за помощь в моих преведущих постах! Новый вопрос по оптимизации структуры куба. Предлагаю рисунок с фрагментом 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 ? Интуитивно чувствую что здесь можно оптимизировать, но пока не знаю как. У кого будут какие-то идеи ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2004, 14:44 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
Рисунок 2. CUBE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2004, 14:45 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
для начала можно сделать Optimize Schema в редакторе кубов и поудалять таблицы которые удаляются. Потом можно с партишинами поиграться и с Storage Design Wizard А что собственно не устраивиет? Откуда желание оптимизировать возникло? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2004, 15:18 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
Dmitry Biryukovдля начала можно сделать Optimize Schema в редакторе кубов и поудалять таблицы которые удаляются. Потом можно с партишинами поиграться и с Storage Design Wizard А что собственно не устраивиет? Откуда желание оптимизировать возникло? Optimize Schema сказал что ничего нельзя оптимизировать. Очень долго делется Rebuild Cube. Порядка 1 часа на 200 тысчах записей в fact table, а предпологается миллионы. В силу разных причин, делаю full rebuild вместе с галочкой Incremental Update Dimension. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.12.2004, 15:29 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
не понял смысл делать перестройку куба при каждой загрузке в куб, это следует из "Очень долго делется Rebuild Cube. Порядка 1 часа на 200 тысчах записей в fact table, а предпологается миллионы". Понимаю раз перестроить куб, и потом подгружать данные ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 11:33 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
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. Эта галочка означает, что процессится не только куб, а учавствующие в нём общие измерения. Они действительно меняются? В конце концов, подумайте что Вам важнее: время процессинга или скорость выполнения запросов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 12:42 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
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! (завтра допишу, если конечно еще эта тема интересует.) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 18:05 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
Поддерживаю DeRus, размер имеет значение.. Плюс вопрос - ключи имерений из таблицы фактов или свои ?. У меня здорово поднималась скокрость просессинга в первом случае ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2004, 20:38 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
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%!!! Желаю УДАЧИ!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 13:52 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
А если измерение общее, то получается нельзя сделать Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 14:00 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
ВжикА если измерение общее, то получается нельзя сделать если измерение будет использоваться в различных Cub-ах, и при этом использоваться разные "Таблицы фактов", то конечно лучше не изменять Member Key Column для этой общей Dimension. Но есле же "Таблицы фактов" в этих Cub-ах будут одинаковы, тогда я думаю что можно менять Member Key Column. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 15:09 |
|
||
|
Оптимизация структуры куба
|
|||
|---|---|---|---|
|
#18+
Валекне понял смысл делать перестройку куба при каждой загрузке в куб, это следует из "Очень долго делется Rebuild Cube. Порядка 1 часа на 200 тысчах записей в fact table, а предпологается миллионы". Понимаю раз перестроить куб, и потом подгружать данные К сожалению, такой случай не подходит. В задаче может быть так что данные в fact_table уже не актульны и могут быть удаленны посже. Каждый раз при при перестройке CUBE я чищу fact table на предмет соответсвия текущей ситуации. Случай каждый день данные добавляются к уже существующим идеален, но к сожалению это не мой случай. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2004, 19:44 |
|
||
|
|

start [/forum/topic.php?fid=49&msg=32825439&tid=1871973]: |
0ms |
get settings: |
9ms |
get forum list: |
22ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
61ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 429ms |

| 0 / 0 |
