Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Drill по времени (MSTR) / 5 сообщений из 5, страница 1 из 1
23.03.2005, 09:47
    #32975275
JenkusPenkus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drill по времени (MSTR)
ХАй

кто нибудь может раскрыть тему почему так слабо с преоброзованием времени в MSTR? или я что то не так делаю?

Вообщем решил поэкспериментировать
убрал справочник по времени и стал использовать стандартные функции
типа Year() из поля datetime

получилось вот что (группровка по году)
select DATEPART(YEAR, a11.CA_DATA) CustCol,
count(distinct a11.CA_MSISDN) WJXBFS1
from dbo.CA a11
group by DATEPART(YEAR, a11.CA_DATA)

потом из отчета выбираю год(2005) и хочу перейти на месяц.
select DATEPART(MONTH, a11.CA_DATA) CustCol_1,
count(distinct a11.CA_MSISDN) WJXBFS1
from dbo.CA a11
where DATEPART(YEAR, a11.CA_DATA) in (CONVERT(datetime, '1899-12-30 00:00:00', 120))
group by DATEPART(MONTH, a11.CA_DATA)

Почему же 1899??
и почему CONVERT? хотя просто нужно было поставить ('2005')

:(
...
Рейтинг: 0 / 0
23.03.2005, 10:04
    #32975332
JenkusPenkus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drill по времени (MSTR)
еще интересно следующее
когда сохраняю производный отчет с группировкой по месяцам
вижу в Editor что фильтр такой
Год in list (2005)
однако он не действует если этот отчет запустить

меняю на exactly и тут то все начинает работать...
вот гад, а...
...
Рейтинг: 0 / 0
23.03.2005, 10:28
    #32975400
Константин Лисянский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drill по времени (MSTR)
Мой Вам совет - лучше пользуйтесь нормальным измерением ВРЕМЯ и не парьтесь с функциями.
Мало того, что индексы не будут работать, там где они работают со столбцами, ещё и в возможностях проиграете по сравнением с использованием таблиц. Как, например, Вы из даты поймёте, является ли данный день праздничным или выходным, если не использовать таблицу измерения?

Я так понимаю, что Вы хотите избежать лишнего джойна? Тут надо заметить, что отсутствие индекса для проведения операции GROUP BY может наоборот замедлить выполнение запроса, даже если нет джойна. Нормальная СУБД в приведённом Вами запросе сначала выполнит агрегацию, а потом будет выполнять джойн.

Удивляюсь, как на ровном месте можно найти для себя столько проблем...

Удачи в борьбе с функциями.

С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
23.03.2005, 10:34
    #32975418
JenkusPenkus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drill по времени (MSTR)
:) да ууж.
спасибо

кстати DimModeler поддерживает ли MS SQL?
...
Рейтинг: 0 / 0
23.03.2005, 11:57
    #32975749
Константин Лисянский
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Drill по времени (MSTR)
:) да ууж.
спасибо

Не за что :)

кстати DimModeler поддерживает ли MS SQL?

Да, поддерживает. Существует специальный модуль для генерации DDL - называется DBMS Driver. Вот его функциональность:

Feature
Description

CREATE TABLE statements generation
DBMS Driver automatically generates CREATE TABLE statements

DROP TABLE statements generation
DBMS Driver automatically generates DROP TABLE statements to give users an opportunity to create tables more than once

PRIMARY KEY constraint generation
DBMS Driver automatically generates primary keys for the tables using DimensionModeler metadata

FOREIGN KEY constraint generation
DBMS Driver automatically generates foreign keys for the tables using DimensionModeler metadata

NULL/NOT NULL constraint generation
DBMS Driver automatically generates NULL/NOT NULL constraints for the tables using DimensionModeler metadata and our knowledge about the uniquness of the corresponding column values

UNIQUE constraint generation
DBMS Driver automatically generates NULL/NOT NULL clauses for the tables using DimensionModeler metadata

CHECK constraint generation
CHECK constraint expressions are generated automatically depending on the TIME dimension attribute that a column represents

CREATE INDEX generation
DBMS Driver automatically generates CREATE INDEX statements for the tables using DimensionModeler metadata and our knowledge about how the columns must beindexed to achieve better performance

DROP INDEX generation
DBMS Driver automatically generates DROP INDEX statements for the tables using DimensionModeler metadata

File options
Users can choose whether to generate DDL for all tables into one file or to create one DDL file per table

Command file generation
Automatic generation of command files that run the generated DDL using DBMS native utilities for batch SQL execution (like isql in the case of Microsoft SQL Server)

Seamless integration with DimensionModeler Base Module
DBMS Drivers are built into DimensionModeler's GUI and use the same project files
to store their own metadata

В данный момент разрабатывается функциональность, связанная с генерацией скриптов сбора статистики по таблицам измерения ВРЕМЯ для пущей скорострельности. Скоро будет готово.

Источник здесь .
Рекомендую посмотреть также описание модуля для Microstrategy коль скоро Вы им пользуетесь.

Пример кода для создания нескольких таблиц в MS SQL Server, который он может сгенерировать для приведён здесь .

Дальше, есть модуль (Data Loader), который генерирует скрипты bcp для закачки сгенерированных данных в MS SQL.

В общем, MS SQL поддерживается хорошо.


С уважением,
Константин Лисянский
http://lissianski.narod.ru
...
Рейтинг: 0 / 0
Форумы / OLAP и DWH [игнор отключен] [закрыт для гостей] / Drill по времени (MSTR) / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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