Je souhaite créer un schéma de table dans Hive en utilisant "sqoop create-hive-table". Ma base de données est une base de données Oracle 10g Enterprise Edition 10.2.0.4.0, j'utilise sqoop-1.2.0-cdh3u0 et hive-0.7.0-cdh3u0. Les données à charger ensuite sur la table Hive sont déjà sur le HDFS, et je préférerais que les métadonnées de la table soient créées automatiquement par sqoop & plutôt que de le créer manuellement et de charger les données par la suite.Erreur lors de la création d'une table avec Sqoop
Voici la commande que j'Execute:
$ sqoop create-hive-table --connect jdbc:oracle:thin:@//dbserver:1521/masterdb
--username myuser --table DBFUNC1.R1_EVOLUTION
--fields-terminated-by ',' -P
Et je reçois l'erreur suivante:
11/05/12 11:33:11 INFO hive.HiveImport: Loading uploaded data into Hive
11/05/12 11:33:12 INFO manager.OracleManager: Time zone has been set to GMT 11/05/12
11:33:12 INFO manager.SqlManager: Executing SQL statement: SELECT t.* FROM BFUNC1.R1_EVOLUTION t WHERE 1=0
11/05/12 11:33:14 INFO hive.HiveImport: Hive history file=/tmp/edjatsay/hive_job_log_edjatsay_201105121133_1466429457.txt
11/05/12 11:33:14 INFO hive.HiveImport: FAILED: Parse Error: line 1:58 mismatched input ')' expecting Identifier in column specification
11/05/12 11:33:14 INFO hive.HiveImport:
11/05/12 11:33:14 ERROR tool.CreateHiveTableTool: Encountered IOException running create table job: java.io.IOException: Hive exited with status 11
Voici le schéma de la table dans le DB:
SQL> describe BFUNC1.R1_EVOLUTION;
OWNER_ID NOT NULL NUMBER(38)
AI_CODE NOT NULL CHAR(3)
TA_NUMBER NOT NULL NUMBER(38)
RULE NOT NULL CHAR(4)
F_CLASS NOT NULL CHAR(8)
EVOLUTION_ID NOT NULL NUMBER(38)
CREATION_MODIFID NUMBER(38)
DISC_MODIFID NUMBER(38)
CREATION_DATETIME CHAR(19)
ENDED_DATETIME CHAR(19)
EVOLUTION_STATE CHAR(1)
Merci d'avance pour votre aide.