Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSAS Tabular криво импортирует 20 значные числа / 14 сообщений из 14, страница 1 из 1
27.12.2018, 19:10
    #39754145
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Добрый день!

Проблема в источнике есть поле, которое содержит id, например 10000000000000119011
Но при импорте значение превращается в 10000000000000100000

Источник - Green Plum (Postgresql)

Оснастка - Visual Studio Comunity + SSDT

Сам запрос таблицы выглядит вот так:
Код: plaintext
1.
2.
3.
4.
5.
6.
let
    Source = #"PostgreSQL/server;db_1",
    table = Source{[Schema="scheme_1",Item="v_bi_svc"]}[Data],
    #"Измененный тип" = Table.TransformColumnTypes(table,{{"svc_id",  Decimal.Type}}),
in
    #"Измененный тип"

Если последний шаг убрать, ничего не измениться, я его наоборот добавил в попытках решить проблему.

Пробовал и:
Код: plaintext
1.
2.
3.
4.
5.
6.
let
    Source = #"PostgreSQL/server;db_1",
    table = Source{[Schema="scheme_1",Item="v_bi_svc"]}[Data],
    #"Сложено со столбцом" = Table.TransformColumns(table, {{"svc_id", each Decimal.From(_), Decimal.Type}}),
in
    #"Сложено со столбцом"
Не помогло...

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

Причем если я добавляю, в других таблицах, новый столбец расчетный, например:
Код: plaintext
1.
#"Добавлен пользовательский объект2" = Table.AddColumn(#"Добавлен пользовательский объект1", "user_sid", each Decimal.From([src_id]) * Decimal.From(100000000000000000000) + Decimal.From([user_id]), Decimal.Type),
То все нормально считается и запихивается в SSAS, при чем число получается на порядок больше!

Помогите разобраться в проблеме...
...
Рейтинг: 0 / 0
27.12.2018, 21:24
    #39754216
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Начинает хоть как-то работать если:
Код: plaintext
source = PostgreSQL.Database(..... "SELECT ... svc_id/10000000000 as svc_id, ... FROM ...")
Тогда я получаю десятичное число, где в дробной части все корректно сохранилось...
Но это как то криво. Вероятно проблема в драйверах, кто-то с таким сталкивался?
...
Рейтинг: 0 / 0
27.12.2018, 21:33
    #39754218
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Толикman,

поторопился - при импорте все равно превратилось в 1000000000.00001
...
Рейтинг: 0 / 0
27.12.2018, 21:47
    #39754222
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
ТоликmanТоликman,

поторопился - при импорте все равно превратилось в 1000000000.00001
Во-первых, Greenplum не поддерживается официально как источник для SSAS Tabular.
Во-вторых, попробуйте триальный драйвер PGNP OLEDB Providers for PostgreSQL*, Greenplum and Redshift , причем обязательно самый свежий, версии 1.4.0.3542.

Если понравится - купите драйвер и используйте. А менеджеру проектов, который не захотел делать прослойку в виде DWH на MSSQL - передайте мое "фууу". Удачи.
...
Рейтинг: 0 / 0
27.12.2018, 21:48
    #39754223
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Толикman,

И не используйте драйвер от PostgreSQL, это другая СУБД. Гринплам все-таки полноценный форк со своими заморочками.
...
Рейтинг: 0 / 0
28.12.2018, 09:58
    #39754353
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Andy_OLAP,

но они же сами рекомендуют его использовать:
Greenplum Database Release Notes
...
Рейтинг: 0 / 0
28.12.2018, 10:16
    #39754365
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Толикman,

я всех обманул, вот это тоже не работает, сидимо глаза уже меня обманывали:
Код: plaintext
#"Добавлен пользовательский объект2" = Table.AddColumn(#"Добавлен пользовательский объект1", "user_sid", each Decimal.From([src_id]) * Decimal.From(100000000000000000000) + Decimal.From([user_id]), Decimal.Type),

Если я укажу ::text в select, то текст приходит корректно.
Но если я его потом конвертну в Decimal.From, то опять експонента.

Можно Power Query заставить запускать Decimal.From на стороне SSAS при импорте?
...
Рейтинг: 0 / 0
28.12.2018, 10:31
    #39754378
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Серъезно?

https://docs.microsoft.com/ru-ru/sql/analysis-services/tabular-models/data-types-supported-ssas-tabular?view=sql-server-2017

Максимальное число в SSAS Tabular 8 байтовое?
Т.е. хранить идентификаторы только в виде текста?
...
Рейтинг: 0 / 0
28.12.2018, 13:06
    #39754496
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Толикman,

максимальное целое число в SQL Server.
...
Рейтинг: 0 / 0
28.12.2018, 13:08
    #39754497
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Владислав Колосов,

Десятичное тоже максимум 8 байт.
Итого максимальная точность 17 цифр.

Вопрос закрыт, перевел в текст, всем спасибо!
...
Рейтинг: 0 / 0
28.12.2018, 13:24
    #39754508
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Толикman,

С чего Вы взяли, что десятичное хранится в 8 байтах? Точность десятичного числа - 38 цифр и размер хранилища - 17 байт.
...
Рейтинг: 0 / 0
28.12.2018, 13:29
    #39754514
Толикman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Владислав Колосов,

по данной ссылке написано:
авторДесятичное число
...
64-разрядное (8 байтовое) вещественное число
...
Однако количество значащих цифр ограничено 17 знаками после запятой.
...
Рейтинг: 0 / 0
28.12.2018, 13:32
    #39754519
Andy_OLAP
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Толикman,

Вот Вам кошерная ссылка . Потому что Владислав написал "максимальное целое число в SQL Server ", а не "максимальное целое число в SSAS Tabular ".
...
Рейтинг: 0 / 0
28.12.2018, 13:43
    #39754528
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SSAS Tabular криво импортирует 20 значные числа
Похоже, что в табличной модели не отображения SQL типа Decimal, он же Numeric...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSAS Tabular криво импортирует 20 значные числа / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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