powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSIS. Преобразование данных.
29 сообщений из 29, показаны все 2 страниц
SSIS. Преобразование данных.
    #40055104
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте! Подскажите, пожалуйста!

При загрузке данных из Excel в базу данных MS SQL Server через SSIS выдает ошибку Convert Between Unicode and Non-Unicode Error.

Ошибка выскакивает по строковому полю, которое в базе данных имеет тип varchar.

Я пробовал через задачу SSIS преобразования данных. Там выбираю по нужному полю, чтоб тип данных загружаемых был не юникод а просто строковый. Но ничего не выходит. Перепробовал кучу комбинаций - безрезультатно.

Еще когда выбираю в задаче по преобразованию тип данных строковый, то появляется возможность выбрать код и стандартно он выбирается ANSI Кирилица. Но пробовал и латынь поставить (т.к. загружаемые данные на англ языке) - все равно ничего не получается.

Подскажите, как решить данную проблему?
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055106
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Загрузить nvarchar (UNICODE).
2. Средствами T-SQL преобразовать в varchar.

ЗЫ. SSIS хорош... пока работает.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055107
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222, я пробовал потестить и создать в базе необходимый мне атрибут с типом nvarchar и тогда все прекрасно грузится.

Но в моем случае надо загрузить данные именно в атрибут varchar :((

Мне кажется, что где-то закралась проблема в этой кодировке в Задаче преобразования данных. Или я не туда копаю?
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055119
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124,

Так перекодируйте в SSIS это поле.
Derived Column или Data Conversion в Data Flow
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055121
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex
Pavel_124,

Так перекодируйте в SSIS это поле.
Derived Column или Data Conversion в Data Flow


Нашел инструкцию в иннете. Может я чо неправильно делал. Попробую строго по инструкции.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055134
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124
msLex
Pavel_124,

Так перекодируйте в SSIS это поле.
Derived Column или Data Conversion в Data Flow


Нашел инструкцию в иннете. Может я чо неправильно делал. Попробую строго по инструкции.

что там делать-то

source (ваш excel) -> Data Conversion (добавление нового поля с нужной кодировкой) -> destination (ваша таблица, где в VARCHAR поле замаплено поле, добавленное в Data Conversion )
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055139
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
1. Загрузить nvarchar (UNICODE).
2. Средствами T-SQL преобразовать в varchar.

ЗЫ. SSIS хорош... пока работает.



Если хотя бы попытаться узнать его возможности.

В SSIS есть по-крайне мере 3 способа конвертации данных.
1. Data Conversion - это прям специально сделанный элемент DataFlow для конвертации данных.
2. Derived Column - более гибкий, позволяет не только конвертировать данные, но и преобразовывать (например, склеить или разделить). Ограничен рамками 1-й конкретной строки.
3. Script Component - тут вообще можно делать все, что позволяет .Net. Причем не только с одной конкретной записью, а со всем набором целиком (например, сложный stream (или hash) aggregate)
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055329
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
aleks222
1. Загрузить nvarchar (UNICODE).
2. Средствами T-SQL преобразовать в varchar.

ЗЫ. SSIS хорош... пока работает.



Если хотя бы попытаться узнать его возможности.

В SSIS есть по-крайне мере 3 способа конвертации данных.
1. Data Conversion - это прям специально сделанный элемент DataFlow для конвертации данных.
2. Derived Column - более гибкий, позволяет не только конвертировать данные, но и преобразовывать (например, склеить или разделить). Ограничен рамками 1-й конкретной строки.
3. Script Component - тут вообще можно делать все, что позволяет .Net. Причем не только с одной конкретной записью, а со всем набором целиком (например, сложный stream (или hash) aggregate)


На свете есть многое, друг горацио, что и не снилось вашим мудрецам.

Только нафига?
Мне проще ADO воспользоваться, если уж так припрет.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055347
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222

На свете есть многое, друг горацио, что и не снилось вашим мудрецам.

Только нафига?
Мне проще ADO воспользоваться, если уж так припрет.

Оказывается, вы развлекаетесь не только оркестрацией на SQL, но и трансформацией данных через ADO!
(записал вторым пунктом)
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055361
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
.Евгений
aleks222

На свете есть многое, друг горацио, что и не снилось вашим мудрецам.

Только нафига?
Мне проще ADO воспользоваться, если уж так припрет.

Оказывается, вы развлекаетесь не только оркестрацией на SQL, но и трансформацией данных через ADO!
(записал вторым пунктом)


Ващето, если ты не в курсе, "преобразование данных" прямая функция SQL.
И преобразует он их быстрее и эффективнее фсяких SSIS.
SSIS - это костыль для инвалидов.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055367
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Ващето, если ты не в курсе, "преобразование данных" прямая функция SQL.


Вообще-то, если вы не в курсе, преобразование данных это не прямая функция SQL Server.
Скорость работы со строковыми функциями в SQL Server вообще оставляет желать лучшего.



aleks222
И преобразует он их быстрее и эффективнее фсяких SSIS.

Вы до моего сообщения даже не знали как это сделать в SSIS, но уже с уверенностью заявляете, что то, о чем вы даже не знали, работает медленно.

Есть ссылки на замеры скорости?
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055375
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
aleks222
Ващето, если ты не в курсе, "преобразование данных" прямая функция SQL.

Вы до моего сообщения даже не знали как это сделать в SSIS, но уже с уверенностью заявляете, что то, о чем вы даже не знали, работает медленно.


Анекдот про Неуловимого Джо надо напоминать?

ЗЫ. Ты, наверное, веруешь, что SSIS написан сверхчеловеками с использованием неземного кода.
Дык, открою тебе страшную тайну - это обычный "сверхуниверсальный код для чайников", который использует те же стандартные библиотеки, только медленнее. Из-за доп.наворотов.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055378
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
msLex
пропущено...

Вы до моего сообщения даже не знали как это сделать в SSIS, но уже с уверенностью заявляете, что то, о чем вы даже не знали, работает медленно.


Анекдот про Неуловимого Джо надо напоминать?

ЗЫ. Ты, наверное, веруешь, что SSIS написан сверхчеловеками с использованием неземного кода.
Дык, открою тебе страшную тайну - это обычный "сверхуниверсальный код для чайников", который использует те же стандартные библиотеки, только медленнее. Из-за доп.наворотов.


Ну т.е. как я и думал, никаких тестов вы не проводили, а простое бла-бла. Спасибо. Ваше мнение о SISS очень ценно.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055379
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
msLex
aleks222
пропущено...


Анекдот про Неуловимого Джо надо напоминать?

ЗЫ. Ты, наверное, веруешь, что SSIS написан сверхчеловеками с использованием неземного кода.
Дык, открою тебе страшную тайну - это обычный "сверхуниверсальный код для чайников", который использует те же стандартные библиотеки, только медленнее. Из-за доп.наворотов.


Ну т.е. как я и думал, никаких тестов вы не проводили, а простое бла-бла. Спасибо. Ваше мнение о SISS очень ценно.

Подобные "тесты" - удел лиц, не способных к логическим рассуждениям.

Если я к "стандартной библиотеке" приделаю еще ведро кода - быстрее это работать не будет.
По определению.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055380
msLex
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
msLex
пропущено...


Ну т.е. как я и думал, никаких тестов вы не проводили, а простое бла-бла. Спасибо. Ваше мнение о SISS очень ценно.

Подобные "тесты" - удел лиц, не способных к логическим рассуждениям.

Если я к "стандартной библиотеке" приделаю еще ведро кода - быстрее это работать не будет.
По определению.


Да. Да. Ведь в скуль это узкозаточенный инструмент для преобразования строк, а не многофункциональная СУБД. Там то точно, только и есть, что код вызова "стандартных библиотек".


А подобные тесты, это удел нормальных людей, а не балаболов.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055382
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
Ващето, если ты не в курсе, "преобразование данных" прямая функция SQL.

Это вы где-то прочитали или сами выдумали?
Вообще непонятно, что такое "прямая функция". Язык оптимизирован под трансформации? Но это совсем не про SQL.
aleks222
Дык, открою тебе страшную тайну - это обычный "сверхуниверсальный код для чайников", который использует те же стандартные библиотеки, только медленнее. Из-за доп.наворотов.

Непонятная мне фраза. Что такое стандартные библиотеки (в отношении трансформаций) и почему их использование должно уравнивать скорость?

Пример: я складываю 1 млн строк через StringBuilder и через Concat. И то, и другое вроде бы стандартно-библиотечно, но скорости будут сильно отличаться...

aleks222
Подобные "тесты" - удел лиц, не способных к логическим рассуждениям.

Здесь более уместно смотрелось бы слово "вера".

В SSIS относительно легко и бесшовно (по сравнению с SQL Server) можно применять код на C#, и я активно пользуюсь этой возможностью. Подавляющее большинство трансформаций выполняется так гораздо быстрее и эффективнее, чем на SQL.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055388
Pavel_124
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
msLex
Pavel_124
пропущено...


Нашел инструкцию в иннете. Может я чо неправильно делал. Попробую строго по инструкции.

что там делать-то

source (ваш excel) -> Data Conversion (добавление нового поля с нужной кодировкой) -> destination (ваша таблица, где в VARCHAR поле замаплено поле, добавленное в Data Conversion )


Еще потыкался минут 30 и решил. Я оказывается в задаче назначения не перевязал столбец на преобразованный)). Чтож ) всё опыт) буду знать теперь)
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055391
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модератор: Началась в колхозе пятница. aleks222 выливает на всех последствия каких-то своих травм, связанных с SSIS (PowerShell наше все, ага), остальные доказывают ему, что он не прав. Ну пустое же, никто никого не перубедит. Может, разойдемся подобру-поздорову?
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055616
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pavel_124
Подскажите, как решить данную проблему?

Попробуйте в источнике Excel задать тип данных.
Не юникод, а 1251.
Непонятно какие у вас проблемы.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055639
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
Pavel_124
Подскажите, как решить данную проблему?

Попробуйте в источнике Excel задать тип данных.
Не юникод, а 1251.
Непонятно какие у вас проблемы.


Глупее совета даже помыслить невозможно.

Если у вас есть возможность использовать юникод в источнике данных - безумие конвертировать его в ASCII.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055913
Fox Malder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

Покажите пример, короче, чем добавление одного лишнего компонента "Data Conversion".
По крайней мере цепочка:
Source --> Data Conversion --> Destination
понятна все, прозрачна, эффективна, быстра, нативна.
Для особо одаренных поясняю слово "нативный", нативный это родной. Excel, SSIS, MSSQL - это все инструменты одного производителя. Ошибки минимальны.

Откуда у Вас такая неприязнь к SSIS, непонятно. Возможно из-за отсутствия полноценной русскоязычной литературы.
Может поэтому у Вас не было освоить сей чудесный инструмент.

Накидал интеграцию за одну минуту.
Еще через минуту я уже все тестировал и данные из файла попали в БД.
Что может быть короче и понятнее?

Приведите Ваш понятный, быстрый, эффективный пример.
И тогда мы поймем, что Вы что-то умеете, а не просто сотрясаете воздух эпитетами о "кривом SSIS".
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055941
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fox Malder
aleks222,

Покажите пример, короче, чем добавление одного лишнего компонента "Data Conversion".
По крайней мере цепочка:
Source --> Data Conversion --> Destination
понятна все, прозрачна, эффективна, быстра, нативна.
Для особо одаренных поясняю слово "нативный", нативный это родной. Excel, SSIS, MSSQL - это все инструменты одного производителя. Ошибки минимальны.

Откуда у Вас такая неприязнь к SSIS, непонятно. Возможно из-за отсутствия полноценной русскоязычной литературы.
Может поэтому у Вас не было освоить сей чудесный инструмент.

Накидал интеграцию за одну минуту.
Еще через минуту я уже все тестировал и данные из файла попали в БД.
Что может быть короче и понятнее?

Приведите Ваш понятный, быстрый, эффективный пример.
И тогда мы поймем, что Вы что-то умеете, а не просто сотрясаете воздух эпитетами о "кривом SSIS".


Примером является данная тема.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055976
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дайте некоторое время побыть адвокатом дьявола и сотрясти воздух эпитетами о "кривом SSIS".

1. Я работал с проектами SSIS на различных версиях студии от 2012 до 2019, и абсолютно в каждой были глюки гуя. Не счесть раз, когда вместо изменения размера компонента он, словно поросенок Петр, уезжал куда-то влево на Запад. А как студия транслитерирует (например, при копировании) русские буквы...

2. Вы справились с непослушным интерфейсом и делаете коммит. И тут выясняется, что кто-то еще изменил этот пакет и надо смержить изменения. Но сделать это практически невозможно.

3. Старт SSIS проекта (пакета) относительно длителен и трудоемок. В отличие от скриптов SQL, его нельзя просто взять и отослать на компиляцию. Сначала серверу надо запустить хост-процесс issserver.exe, затем загрузить в него проект(пакет), распаковать и распарсить XML содержимое, загрузить библиотеки компонент, провалидировать потроха и соединения... (я мог чего-то не упомянуть, но мне уже лень перечислять и суть должна быть понятна).

4. У вас все загружается для локальной машины, но отказывается работать на сервере? Поздравляю: скорее всего, вы миллионный программист, столкнувшийся с различной битностью драйверов для 32-битной студии и 64-битного сервера.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40055977
Ferdipux
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Pavel_124
Я пробовал через задачу SSIS преобразования данных. Там выбираю по нужному полю, чтоб тип данных загружаемых был не юникод а просто строковый. Но ничего не выходит. Перепробовал кучу комбинаций - безрезультатно.

Коль скоро задача породила такой холивар.
В преобразовании SSIS Unicode -> non-Unicode - есть следующий неочевидный момент. Пусть у вас есть юникодное поле UString (пример). В метаданных SSIS оно имеет тип данных WSTR. Если вы преобразуете тип данных к non-Unicode и сохраните результат в поле UString - в метаданных потока данных оно все равно будет иметь тип WSTR и при сохранении в неюникодное поле назначение - будет ошибка.
Чтобы исправить ошибку - в задаче преобразования данных - нужно сохранить результат в новом поле NonUString с типом STR.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40056040
Fox Malder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
aleks222,

Дальше можно не продолжать. Вы не владеете темой интеграции данных.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40056042
Fox Malder
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
.Евгений,

автор2. Вы справились с непослушным интерфейсом и делаете коммит. И тут выясняется, что кто-то еще изменил этот пакет и надо смержить изменения. Но сделать это практически невозможно.

Дальше можно не продолжать.
Если у вас именно так построена работа, по понятно откуда глюки.

По какой причине "сделать это практически невозможно"? У вас не стоит контроль версий? Тогда почему не отлажен процесс?
Или он стоит и кривой? Тогда при чем здесь SSIS?

Это как у водителей "да я 20 лет за рулем!!". А ездить так и не научился.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40056054
.Евгений
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Fox Malder,

так не продолжайте. Вас же не заставляют и не насилуют.

Если имеется несколько версий скрипта SQL, то значительную часть конфликтов между ними (кроме самых запущенных) можно разрешить посредством зрячих глаз и растущих из плечей (а не из задницы) рук. Ну а SSIS вполне в состоянии перемешать содержимое внутри пакета просто от нечего делать (был компонент описан первым, стал вторым, и наоборот) .

Далее, подавляющее большинство компонент SSIS остается практически без изменений с момента создания. Никто ничего не улучшает и не исправляет - что прямым образом сказывается на их функциональности и удобстве использования. Ну почему бы не дать разработчику возможность скопировать несколько строк из трансформации или в нее (имя, формула и др. поля) ? Сколько можно ставить признак сортировки в источнике через задний проход? Доколе оракловый Number будет грузиться через строку юникода (по умолчанию)? Когда в источники с соединениями ADO можно будет нормально (как в OLEDB) передавать параметры? (хотя называть знаки вопроса нормальным - это...) Почему надо внедрить несколько компонент для Хадупа и OData, но полностью забить на архивацию, SFTP или простую запись в лог пользовательского сообщения?

Могу высказаться гораздо дольше и экспрессивнее про ту же проблему со Скрипт тасками, без которых даже порядковый номер строкам не поставить. Но это, возможно, будет совсем неинтересно большинству присутствующих.
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40056089
Фотография SQL2008
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aleks222
SQL2008
пропущено...

Попробуйте в источнике Excel задать тип данных.
Не юникод, а 1251.
Непонятно какие у вас проблемы.


Глупее совета даже помыслить невозможно.

Если у вас есть возможность использовать юникод в источнике данных - безумие конвертировать его в ASCII.

1. Внимательно читаем "по строковому полю, которое в базе данных имеет тип varchar."
2. Не в каждой базе вам позволят менят тип данных.
Ну и напоследок эмоциональное
3. Сам дурак
...
Рейтинг: 0 / 0
SSIS. Преобразование данных.
    #40056176
aleks222
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SQL2008
aleks222
пропущено...


Глупее совета даже помыслить невозможно.

Если у вас есть возможность использовать юникод в источнике данных - безумие конвертировать его в ASCII.

1. Внимательно читаем "по строковому полю, которое в базе данных имеет тип varchar."
2. Не в каждой базе вам позволят менят тип данных.
Ну и напоследок эмоциональное
3. Сам дурак


Зато позволят иметь сколько хочешь временных таблиц.
Но мыши могут продолжать кушать кактус.
...
Рейтинг: 0 / 0
29 сообщений из 29, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / SSIS. Преобразование данных.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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