2015-05-27 3 views
0

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

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. я затем импортировать данные из текстового файла в таблицу базы данных, используя л.с 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 

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

+0

Что вы делаете, чтобы изменение кодировка файла в UTF-8? – woot

+0

Вы можете изменить кодировку на стороне Vertica, чтобы сохранить русские буквы. – Kermit

ответ

3

Убедитесь, что ваш файл кодирующая нам UTF-8

[[email protected] ~]$ file rus 
rus: UTF-8 Unicode text 

[[email protected] ~]$ 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 

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

[[email protected] ~]$ 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 

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

запроса данных

([email protected]: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)