Кодировка в hp vertica

Я установил последнюю версию бесплатного сервера hp vertica на ОС Linux CentOS версии 6.6 (Final). Далее я настроил сервер и создал базу данных IM_0609. Далее я создал таблицу с помощью команды:

CREATE TABLE MARKS (SERIAL_NUM  varchar(30),PERIOD smallint,MARK_NUM decimal(20,0), END_MARK_NUM decimal(20,0),OLD_MARK_NUM decimal(20,0),DEVICE_NAME varchar(256),DEVICE_MARK varchar(256),CALIBRATION_DATE date);

Затем из базы данных DB2 я выполнил ЭКСПОРТ данных в текстовый файл:

5465465|12|+5211.|+5211.||Комплексы компьютеризированные самостоятельного предрейсового экспресс-обследования функционального состояния машиниста, водителя и оператора|ЭкОЗ-01|2004-12-09
5465465|12|+5211.|+5211.||Спектрометры эмиссионные|Metal Lab|2004-12-09
б/н|12|+5207.|+5207.|+5205.|Спектрометры эмиссионные|Metal Lab|2004-12-09
б/н|12|+5207.|+5207.|+5205.|Спектрометры эмиссионные|Metal Test|2004-12-09
....

и я изменил кодировку файла на UTF-8. Затем я импортирую данные из текстового файла в таблицу базы данных, используя вот эту команду hp vertica:

copy MARKS from '/home/dbadmin/result.txt' delimiter '|' null as '' exceptions '/home/dbadmin/copy-error.log' ABORT ON ERROR;

Все данные загружаются, но русские символы отображают какие-то странные символы, видимо это связано с проблемами кодировки символов команды COPY.

5465465 12  5211    5211    (null)  Êîìïëåêñû êîìïüşòåğèçèğîâàííûå ñàìîñòîÿòåëüíîãî ïğåäğåéñîâîãî ıêñïğåññ-îáñëåäîâàíèÿ ôóíêöèîíàëüíîãî ñîñòîÿíèÿ ìàøèíèñòà, âîäèòåëÿ è îï  İêÎÇ-01 2004-12-09
5465465 12  5211    5211    (null)  Ñïåêòğîìåòğû ıìèññèîííûå    Metal Lab   2004-12-09

Вопрос: Как я могу решить эту проблему?


person Anton    schedule 27.05.2015    source источник
comment
Что вы сделали, чтобы изменить кодировку файла на UTF-8?   -  person woot    schedule 27.05.2015
comment
Вы можете изменить кодировку на стороне Vertica, чтобы сохранить русские буквы.   -  person Kermit    schedule 27.05.2015


Ответы (1)


Убедитесь, что ваш файл кодирует нас utf-8

[dbadmin@DCG023 ~]$ file rus
rus: UTF-8 Unicode text

[dbadmin@DCG023 ~]$ cat rus
5465465|12|+5211.|+5211.||Комплексы компьютеризированные самостоятельного предрейсового экспресс-обследования функционального состояния машиниста, водителя и оператора|ЭкОЗ-01|2004-12-09
5465465|12|+5211.|+5211.||Спектрометры эмиссионные|Metal Lab|2004-12-09
б/н|12|+5207.|+5207.|+5205.|Спектрометры эмиссионные|Metal Lab|2004-12-09
б/н|12|+5207.|+5207.|+5205.|Спектрометры эмиссионные|Metal Test|2004-12-09

Загрузить данные

[dbadmin@DCG023 ~]$ vsql
Password:
Welcome to vsql, the Vertica Analytic Database interactive terminal.

Type:  \h or \? for help with vsql commands
       \g or terminate with semicolon to execute query
       \q to quit

(dbadmin@:5433) [dbadmin] > copy MARKS from '/home/dbadmin/rus' delimiter '|' null as ''  ABORT ON ERROR;
 Rows Loaded
-------------
           4
(1 row)

Запросить данные

(dbadmin@:5433) [dbadmin] > select * from Marks;
 SERIAL_NUM | PERIOD | MARK_NUM | END_MARK_NUM | OLD_MARK_NUM |                                                              DEVICE_NAME                                                               | DEVICE_MARK | CALIBRATION_DATE
------------+--------+----------+--------------+--------------+----------------------------------------------------------------------------------------------------------------------------------------+-------------+------------------
 5465465    |     12 |     5211 |         5211 |              | Комплексы компьютеризированные самостоятельного предрейсового экспресс-обследования функционального состояния машиниста, водителя и оп | ЭкОЗ-01     | 2004-12-09
 5465465    |     12 |     5211 |         5211 |              | Спектрометры эмиссионные                                                                                                               | Metal Lab   | 2004-12-09
 б/н        |     12 |     5207 |         5207 |         5205 | Спектрометры эмиссионные                                                                                                               | Metal Lab   | 2004-12-09
 б/н        |     12 |     5207 |         5207 |         5205 | Спектрометры эмиссионные                                                                                                               | Metal Test  | 2004-12-09
(4 rows)
person Up_One    schedule 27.05.2015