powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Datastage
16 сообщений из 41, страница 2 из 2
Datastage
    #38688496
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
utf8.
Все основные европейские языки укладываются в два байта. Вся первая половина базовой плоскости - в три.
Плюс - байтовый поток полностью совместимый со стандартным CRT.
...
Рейтинг: 0 / 0
Datastage
    #38688499
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поддерживаю.
...
Рейтинг: 0 / 0
Datastage
    #38688578
HunterikВ администраторе DataStage тоже выставьте MS1251-CS (General->NLS->Client), перезапуск Desinger после этого обязателен.
...
Рейтинг: 0 / 0
Datastage
    #38688581
Про UTF8 - я в курсе.
Техническая сторона интересует, т.к. не работаю с Datastage...
 Я правильно понимаю,нужно поменять в администраторе DataStage General->NLS->Client на UTF8? Кроме того, в Datastage File тоже должен быть установлен UTF8?

Спасибо за ваши ответы...
...
Рейтинг: 0 / 0
Datastage
    #38688602
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположим вы решили перейти на обработку в utf8, для этого:
1. Вы переводите ПРОЕКТЫ DataStage на работу в UTF8 (выбираете проект->NLS->Server Maps+Parallel Maps)
2. Эта настройка автоматически унаследуется на нижних уровнях где оставлены значения по умолчанию (Project Default), там где нзначения менялись пользователем - всё сохранится. Прочитайте, что я писал раньше про переопределение на нижних уровнях...
Например, если придёт файл в 1251 - вы сможете его прочитать заданием, работающим в utf8 в проекте с utf8, только надо будет элементу, читающему данный файл указать, что файл в соответствующей кодировке, чтобы чтение прошло корректно.
Разберётесь с примером, что я вчера выложил - будет понятнее.
3. Client настраивается так, чтобы бы корректно происходило взаимодействие и отображение символов. У меня 1251 при utf-ных серверах, но я работаю только с русским и английским (без национальных спец.симолов вроде умляутов), у себя - "будете посмотреть", может и utf8 поставите.
...
Рейтинг: 0 / 0
Datastage
    #38688925
Hunterik,

cпасибо вам большое. Завтра попробую ваше решение...
...
Рейтинг: 0 / 0
Datastage
    #38689345
Hunterik,

попробовали загрузить твой файл в версии 8.0.1.
получили ошибку:
HCA.dsx does not appear to be a valid DataStage export file or is from an incompatible release.
A valid DataStage export file is expected to be in Windows format (i.e. using CRLF line terminators).

При попытке поменять настройки клиента (Administrator Client->General->NLS) на UTF8, получили ошибку:
Map 'UTF8' is unsuitable for client/server use -
Does not map the UniVerse mark character IM to a single byte

Завтра будет возможность попробовать на версии 8.5
...
Рейтинг: 0 / 0
Datastage
    #38690437
Hunterik,

Какая версия Dstage у Вас?
...
Рейтинг: 0 / 0
Datastage
    #38690555
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Очень плохо, что вы мечетесь и пробуете всё подряд. Менять один параметр за раз!

У меня 8.7 и 9.1, вам делал на 9.1 - что под рукой было, на 8.7 импортируется.

Предлагаю вам попробовать следующую последовательность действий:
1. Выставляете Client/Server в Administrator как он у вас был (WIN1252-CS?) - соответствие кодировке Windows.
У вас Windows в какой кодировке - 1252?
2. Пробуете импортировать, далее, смотря, что получаете.

Если будет крик о несоответствии версий, то можете попробовать открыть dsx и поправить Server version на 8.5.
Вообще, официально, переход с даунгрейдом версий не поддерживается, но версий, соответствующих вашим у меня нет.

От 8.0.1 отказались - эта версия снимается с поддержки вот-вот, а 8.5 - это промежуточная версия между очень хорошим 8.7 и стареющими 8.0-8.1:
Withdrawal from support
Program
number VRM date Program release name
5724-Q36 8.1.2 04/30/15 IBM InfoSphere Information Server
5724-Q36 8.0.1 09/30/14 IBM InfoSphere Information Server
...
Рейтинг: 0 / 0
Datastage
    #38690559
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И вообще, давно есть 9.1.2, а неделю назад IBM запилила 11.3! =)
...
Рейтинг: 0 / 0
Datastage
    #38690923
HunterikПредположим вы решили перейти на обработку в utf8, для этого:
1. Вы переводите ПРОЕКТЫ DataStage на работу в UTF8 (выбираете проект->NLS->Server Maps+Parallel Maps)
2. Эта настройка автоматически унаследуется на нижних уровнях где оставлены значения по умолчанию (Project Default), там где нзначения менялись пользователем - всё сохранится. Прочитайте, что я писал раньше про переопределение на нижних уровнях...
Например, если придёт файл в 1251 - вы сможете его прочитать заданием, работающим в utf8 в проекте с utf8, только надо будет элементу, читающему данный файл указать, что файл в соответствующей кодировке, чтобы чтение прошло корректно.
Разберётесь с примером, что я вчера выложил - будет понятнее.
3. Client настраивается так, чтобы бы корректно происходило взаимодействие и отображение символов. У меня 1251 при utf-ных серверах, но я работаю только с русским и английским (без национальных спец.симолов вроде умляутов), у себя - "будете посмотреть", может и utf8 поставите.

Попытался сделать, все как вы сказали
1. Загрузить Ваш файл
2. Клиента перевести на UTF8

Кодировка Client/Server в Administrator WIN1252-CS. Windows должен быть 1252. Dstage у коллеги проинсталирован. Будем пробовать Ваш файл в 8.5 загрузить.

Я их тоже спросил, почему старую версию используют. Говорят, что через пару месяцев будут переходить на 9.1
...
Рейтинг: 0 / 0
Datastage
    #38690977
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если приложение не юникодное, то принимать windows-1251 при системной windows-1252 оно не обязано.
"Язык неюникодных приложений" можно выбирать независимо для системы (пусть остаётся 1252) и для пользователя (отдельная учётка с 1251).
Как вариант.
...
Рейтинг: 0 / 0
Datastage
    #38691010
Hunterik,

Ваш пример работает на 8.5. Но это немного другое решение проблемы. Вы чиаете всю строку в Stage File, а затем разбиваете ее на 3 поля. Можно ли, без прмежуточных шагом, читать файл в Stage File, состоящий из 3 полей???
...
Рейтинг: 0 / 0
Datastage
    #38691073
Technote (FAQ)
Using IBM InfoSphere DataStage to read in UTF8 data as fixed length

Question
Can the DataStage sequential file stage be used to read in UTF8 data as fixed length?

Answer
UTF-8 is not a fixed size character set, characters may be 1, 2 or 3 bytes long. The server sequential file stage is not capable of handling this format as the columns are fixed width at the byte level. So a given column must be n bytes wide. Clearly this will only work with fixed width character sets.

Neither a server nor a parallel job sequential file stage can cope with a fixed-width file where the row length is not also a fixed number of bytes. Both of them take "fixed width" to mean that each column is a fixed number of bytes, not characters. Which means that they cannot work with an NLS map where the character length is not the same as the byte length (such as UTF8). This applies when the data has 2-byte UTF8 chars combined with single byte characters.

The only way of processing such a file is to change the job to read it as a single variable-length column per row (assuming there is a row delimiter such as newline), using a UTF8 map. Then have a Transformer stage that uses substringing to substring the row into each column. There is also a column import stage that would allow the data to be split into columns after reading it in as UTF8, but this would only be available in a parallel job.

Source:
http://www-01.ibm.com/support/docview.wss?uid=swg21455000
...
Рейтинг: 0 / 0
Datastage
    #38691165
Фотография Hunterik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hans Christian Andersen,
ну собственно да.

Я попробовал читать только с использованием SeqFile - для fixed length полей не пошло, а так как время дорого - сделал, как делаю обычно - прочитал файл строками, а разбираю уже позже в Import Column Stage. =)

Кстати, именно такой способ чтения является довольно хорошим по производительности при работе с большими файлами, за счёт распределения процесса чтения и парсинга. Трансформер, кстати, несмотря на то, что его в техноте ставят, как альтернативу, будет работать медленнее, чем Import Column за счёт того, что вы будете делать множество обращений вида column[m,n] - для трёх полей не так критично, для большого количества полей, трансформер существенно проиграет. =)

Тема закрыта? =)
...
Рейтинг: 0 / 0
Datastage
    #38691794
Hunterik,

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

Спасибо вам большое за консультацию. Они теперь четко знают, как менять кодировки.

Спасибо всем и успехов...
...
Рейтинг: 0 / 0
16 сообщений из 41, страница 2 из 2
Форумы / IBM DB2, WebSphere, IMS, U2 [игнор отключен] [закрыт для гостей] / Datastage
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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