![]() |
![]() |
![]() |
|
OLAP: догрузка данных в куб Ø |
☑ | ||
---|---|---|---|---|
0
Noro
06.07.06
✎
14:19
|
Кусок кода, создающий OLAP-куб (из распространенного примера):
С = РазделительСтрок; // Провайдер, куда кладем куб, где берем исходные данные Prov = "PROVIDER = MSOLAP;"; DS = "DATA SOURCE = "+ФайлКуба+";"; SourceDSN = "SOURCE_DSN=""Provider=Microsoft.Jet.OLEDB.4.0; Data Source="+ФайлБазы+""";"; // Структура куба CreateCube = "CREATECUBE = CREATE CUBE [Анализ] (" ... "MEASURE [Возврат] FUNCTION SUM );"; // Какими данными заполняем куб InsertInto = "INSERTINTO = INSERT INTO Анализ (" "[Возврат]) OPTIONS ATTEMPT_ANALYSIS "; // SQL запрос Sel = "SELECT Unloading.Возврат " "FROM Unloading;"; InsertInto = InsertInto +С+ Sel; // Собственно, создаем куб ADO = СоздатьОбъект("ADODB.Connection"); s = Prov +С+ DS +С+ SourceDSN +С+ CreateCube +С+ InsertInto; ADO.Open(s); Внимание, вопрос: как _догрузить_ данные в уже существующий куб? |
|||
1
mclarry
06.07.06
✎
15:20
|
Оч просто: добавлением записей в Unloading
|
|||
2
Noro
06.07.06
✎
15:34
|
(1) Да если бы... Данные из Access выгружаются в сам куб.
|
|||
3
mclarry
06.07.06
✎
15:42
|
БД Access - это источник данных для куба. Если структура куба остается неизменной, а данные надо пополнить - значит надо добавить записи в Access. Или сформулируй задачу.
|
|||
4
Noro
06.07.06
✎
16:02
|
(3) В результате выше приведенного кода образуется самодостаточный файл куба с расширением .cub
Задача: поместить в этот самодостаточный куб новые данные из нового файла Access в дополнение к уже имеющимся в кубе. Тогда как? |
|||
5
mclarry
06.07.06
✎
16:19
|
Для начала сходить на olap.ru :)
Данные хранятся не в самом кубе, а в источнике данных. В данном примере это Access, но может быть что угодно: sql, txt и проч. Т.е. файл .cub трогать не надо, достаточно перезаписать данные в Unloading.mdf |
|||
6
Mikeware
06.07.06
✎
17:31
|
(5) Не буду претендовать на всеобщность, но в данном конкретном случае абсолютно точно все данные хранятся в файле куба (*.cub). Так что ты ошибаешься.
|
|||
7
mclarry
06.07.06
✎
17:45
|
(6)Возможно
Я код (0) давно модифицировал под access и sql, может в исходном состоянии он действительно все хранил в cub. Хотя странно это как-то... |
|||
9
Noro
07.07.06
✎
08:42
|
Up?
|
|||
10
mclarry
07.07.06
✎
10:26
|
(8)Ушло
|
|||
11
Noro
07.07.06
✎
10:33
|
(10) Нету пока... Да и сервис глючит. Можно продублировать на medvedik-s@mail.ru?
Заранее спасибо!!! |
|||
12
Noro
07.07.06
✎
10:47
|
(10) Получил, изучаю. СПАСИБО!!!
|
|||
13
fisher
07.07.06
✎
10:55
|
2(7) Почему странно? Наоборот, иначе никак (кроме нулевого уровня агрегации данных в real-time OLAP, но это отдельная тема). Куб содержит агрегатные данные. После изменения данных источника их по-любому нужно пересчитывать. Только можно это делать не полным пересчетом, а инкрементным. Об этом и разговор.
|
|||
14
Noro
07.07.06
✎
13:53
|
(13) Как это сделать? (инкремент данных в куб без использования внешнего хранилища)
|
|||
15
fisher
07.07.06
✎
18:21
|
2(14) Что значит без использования внешнего хранилища? Без него никак.
Просто я не помню подробностей технологии, давно разбирался. MS Analysis Services точно такую возможность предоставляет. Насчет локальных кубов - не уверен... |
|||
16
Noro
10.07.06
✎
14:24
|
(15) "без внешнего хранилища" - я некорректно выразился. Хотелось бы так:
1. Выгрузка данных за _новый_ период в Access. 2. Инкремент данных из Access в локальный куб. | Ибо сейчас приходится каждую ночь заново формировать куб за год, вместо того, чтобы вечером догрузить данные за прошедший день. |
|||
17
Mikeware
10.07.06
✎
15:06
|
2(16) Точно такая же фигня.... Дописываю в аксесс, и формирую куб. Найдешь решение - поделись, плз.... ася 322 952 475
|
|||
18
mclarry
10.07.06
✎
16:18
|
(16)Хм... я пользуюсь OWC, да хоть в том же Excel, есть кнопка "Обновить данные", чем она плоха?
|
|||
19
fisher
10.07.06
✎
16:58
|
2(18) Дык это наверное полный процессинг куба (на больших объемах данных долго будет)?
2(16,17) А переход на серверные кубы (MS Analysis Services) не рассматривается? |
|||
20
Mikeware
10.07.06
✎
17:31
|
2(19) Да за ради Бога! только не нашел я ничего подобного в описании MS Analisys
|
|||
21
fisher
10.07.06
✎
18:25
|
2(20) При обновлении куба в MS AS можно выбрать метод Incremental update. Но чтобы это заработало "как надо" нужно "подготовить почву".
Подробного описания "от и до" в документации и не найдешь, т.к. это целая технология и конкретные реализации могут отличаться. Но есть хорошие статьи, тематические форумы наконец. Поиск рулит. Вот навскидку: http://www.olap.ru/desc/microsoft/OLAPcu.asp |
|||
22
fisher
10.07.06
✎
18:34
|
+(21) Да и полный процессинг немаленьких кубов на MS AS осуществляется относительно быстро.
|
|||
23
Mikeware
10.07.06
✎
20:03
|
(21) Огромное тебе человеческое спасибо :-) Завтра буду экспериментить....
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |