繁体   English   中英

使用Java在Impala表中插入数据

[英]Insert data in impala table using java

我已经使用sqoopmysql表复制到hdfs中,然后使用“ create external table ”命令在impala创建了具有相同名称的create external table

现在,我将使用Impala的java apiImpalaService.jar将更多数据插入到impala表中。 请帮我用表中的java api插入数据。

谢谢。

使用ImpalaService.jar,您可以发送一条插入语句,例如:

# java -cp ../deps/libthrift-0.9.1.jar:../deps/slf4j.api-1.6.1.jar:./deps/slf4j-simple-.6.1.jar:../jar/ImpalaService.jar:./jar/ImpalaConnectTest.jar org.ImpalaConnectTest.ImpalaConnectTest localhost  21050 "insert into foo values (1,'message 1')"
Result size = 0
#

然后,您可以通过以下方式使用ImpalaService.jar检查结果:

# java -cp ../deps/libthrift-0.9.1.jar:../deps/slf4j.api-1.6.1.jar:./deps/slf4j-simple-.6.1.jar:../jar/ImpalaService.jar:./jar/ImpalaConnectTest.jar org.ImpalaConnectTest.ImpalaConnectTest localhost  21050 "select * from foo"
Result size = 1
TRow(colVals:[<TColumnValue i32Val:TI32Value(value:1)>, <TColumnValue stringVal:TStringValue(value:message 1)>])
# 

或使用Impala-shell:

[root@dub-vcd-vms165 ~]# impala-shell
Starting Impala Shell without Kerberos authentication
Connected to XXXXXX
Server version: impalad version cdh5-1.3.0 RELEASE (build 40e1b62cf0b97f666d084d9509bf9639c575068c)
Welcome to the Impala shell. Press TAB twice to see a list of available commands.

Copyright (c) 2012 Cloudera, Inc. All rights reserved.

(Shell build version: Impala Shell vcdh5-1.3.0 (40e1b62) built on Tue Mar 25 13:46:44 PDT 2014)
[XXXXXX:21000] > select * from foo;
Query: select * from foo
+----+-----------+
| id | msg       |
+----+-----------+
| 1  | message 1 |
+----+-----------+
Returned 3 row(s) in 0.62s
[XXXXXX:21000] >

注意:如果要插入多个数据,则可以通过使用自变量指定包含要插入的所有记录的数据源,将ImpalaService.jar修改为执行多个insert语句的更精细的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM