impala - Apache Drill 和 Apache Kudu - 无法运行“select * from" 使用 Apache Drill,用于通过 Apache Impala 在 Kudu 创建的表
问题描述
我能够通过 Apache Drill 连接到 Kudu,并且能够很好地列出表格。但是当我必须从下面的“impala::default.customer”表中获取数据时,我尝试了不同的选项,但没有一个对我有用。
Kudu 中的表是通过 Impala-Shell 作为外部表创建的。
- 与 Kudu 的初始连接并列出对象
ubuntu@ubuntu-VirtualBox:~/Downloads/apache-drill-1.19.0/bin$ sudo ./drill-embedded
Apache Drill 1.19.0
"A Drill is a terrible thing to waste."
apache drill> SHOW DATABASES;
+--------------------+
| SCHEMA_NAME |
+--------------------+
| cp.default |
| dfs.default |
| dfs.root |
| dfs.tmp |
| information_schema |
| kudu |
| sys |
+--------------------+
7 rows selected (24.818 seconds)
apache drill> use kudu;
+------+----------------------------------+
| ok | summary |
+------+----------------------------------+
| true | Default schema changed to [kudu] |
+------+----------------------------------+
1 row selected (0.357 seconds)
apache drill (kudu)> SHOW TABLES;
+--------------+--------------------------------+
| TABLE_SCHEMA | TABLE_NAME |
+--------------+--------------------------------+
| kudu | impala::default.customer |
| kudu | impala::default.my_first_table |
+--------------+--------------------------------+
2 rows selected (9.045 seconds)
apache drill (kudu)> show tables;
+--------------+--------------------------------+
| TABLE_SCHEMA | TABLE_NAME |
+--------------+--------------------------------+
| kudu | impala::default.customer |
| kudu | impala::default.my_first_table |
+--------------+--------------------------------+
- 现在,当尝试运行“select * from impala::default.customer”时,根本无法运行它。
>>>>>>>>>
apache drill (kudu)> SELECT * FROM `impala::default`.customer;
Error: VALIDATION ERROR: Schema [[impala::default]] is not valid with respect to either root schema or current default schema.
>>>>>>>>>
apache drill (kudu)> SELECT * FROM `default`.customer;
Error: VALIDATION ERROR: Schema [[default]] is not valid with respect to either root schema or current default schema.
Current default schema: kudu
[Error Id: 8a4ca4da-2488-4775-b2f3-443b8b4b17ef ] (state=,code=0)
Current default schema: kudu
[Error Id: ce96ea13-392f-4910-9f6c-789a6052b5c1 ] (state=,code=0)
apache drill (kudu)>
>>>>>>>>>
apache drill (kudu)> SELECT * FROM `impala`::`default`.customer;
Error: PARSE ERROR: Encountered ":" at line 1, column 23.
SQL Query: SELECT * FROM `impala`::`default`.customer
^
[Error Id: 5aacdd98-db6e-4308-9b33-90118efa3625 ] (state=,code=0)
>>>>>>>>>
apache drill (kudu)> SELECT * FROM `impala::`.`default`.customer;
Error: VALIDATION ERROR: Schema [[impala::, default]] is not valid with respect to either root schema or current default schema.
Current default schema: kudu
[Error Id: 5450bd90-dfcd-4efe-a8d3-b517be85b10a ] (state=,code=0)
>>>>>>>>>>>
解决方案
在 Drill 约定中,子句的第一部分FROM
是存储插件,在这种情况下是kudu
. 运行SHOW TABLES
查询时,您看到表名实际上是impala::default.my_first_table
. 如果我没看错,那整个位就是表名,下面的查询是您应该如何转义它。
请注意前后的反勾号impala
,first_table
但其他地方都没有。
SELECT *
FROM kudu.`impala::default.my_first_table`
那对你有用吗?
推荐阅读
- java - 在没有 Maven 的情况下使用 Spring Boot
- excel - 对于 SAP GUI 脚本,你知道创建 SAP 作业的脚本是什么吗?
- javascript - 如何将普通数组转换为嵌套在父对象中的嵌套对象
- ruby-on-rails - Rails 5 在类中包含助手
- typescript - 将“vue-enterprise-boilerplate”转换为打字稿库时出现问题?
- node.js - 使用 nodemailer 通过 Handlebar 发送时模板图像未呈现
- ios - UITextDropDelegate willPerformDrop 没有被调用
- java - 如何在 jmeter 的 __groovy() 函数中执行 java 方法/函数?
- php - 致命错误:不能在第 38 行的 C:\xampp\htdocs\ov400\application\views\Useraccount\Userlist.php 中使用 stdClass 类型的对象作为数组
- c++ - 为什么 syslog 有两个不同的函数声明?