在进行Array类型的侧向连接时,在使用Storage插件时,可能会出现错误。如果你遇到了这种情况,可以通过以下代码示例解决。
示例:
假设有两个数据集,分别存储在HBase和Elasticsearch中。
CREATE TABLE hbase_data( id INTEGER, name VARCHAR, tags LIST(VARCHAR) ) STORED BY 'org.apache.drill.exec.store.hbase.HBaseStoragePlugin' TBLPROPERTIES('hbase.table.name'='hbase_data', 'hbase.zookeeper.quorum'='[ZOOKEEPER_QUORUM]');
CREATE TABLE elastic_data(
id INTEGER,
description VARCHAR,
tags ARRAY
要在这两个数据集上执行侧向连接,可以使用以下SQL语法:
SELECT h.id, h.name, e.description FROM hbase_data h LEFT JOIN elastic_data e ON h.id=e.id LEFT JOIN UNNEST(h.tags) t1(tag) ON e.tags[0]=tag LEFT JOIN UNNEST(e.tags) t2(tag) ON t1.tag=tag;
通过使用'UNNEST”函数将数组拆分后进行侧向连接,可以解决存储插件引起的问题。
上一篇:ApacheDrill无法启动。