天道酬勤,学无止境

apache-drill

Apache Drill: Write general-purpose array_agg UDF

I would like to create an array_agg UDF for Apache Drill to be able to aggregate all values of a group to a list of values. This should work with any major types (required, optional) and minor types (varchar, dict, map, int, etc.) However, I get the impression that Apache Drill's UDF API does not really make use of inheritance and generics. Each type has its own writer and handler, and they cannot be abstracted to handle any type. E.g., the ValueHolder interface seems to be purely cosmetic and cannot be used to have type-agnostic hooking of UDFs to any type. My current implementation I tried

2021-10-21 22:28:46    分类:问答    java   apache-drill

apache 钻有哪些限制?(What are the limitations of apache drill?)

问题 Apache Drill 的局限性是什么? 与 Apache hive/impala 相比,它在哪里失败? 回答1 我对钻的整体看法, Apache 钻取的主要优势之一是您可以跨多个数据库进行查询。 您只需要配置源并直接查询它们。 这就是 Apache 钻头的最大优势。 事实证明,它是许多其他技术中最好的查询。(检查参考 2) 我不能称之为限制,但因为它是一个查询引擎,就像它只是使用方解石查询引擎进行 sql 查询解析并在节点上执行查询。 它不会处理查询执行的失败/取消。 您的应用程序需要处理这个问题。 由于其不断发展的版本,它有许多限制,例如。 像 oracle/mySql 这样的聚合函数并不多,例如。 MINUS,DECODE,TO_TIMESTAMP(非常小),GREATEST,LEAST, 即使在用户定义的函数上,您也可以做非常少的事情。 不支持分层查询(oracle 中通过先验连接) 它无法读取 xml 数据(仅 json、csv、parquet ..) 不支持单行子查询。 加入限制它没有架构,因此可能会造成一些混乱。 Apache Drill 仍然是一个不断发展的版本,所有的问题/限制都将在 Drill 的下一个版本中得到支持。 希望能帮助到你。 参考: https://issues.apache.org/jira/browse/DRILL/

2021-10-19 02:02:47    分类:技术分享    apache-drill

What are the limitations of apache drill?

what are the limitations of Apache Drill? where it fails when compared to Apache hive/impala?

2021-10-18 21:26:39    分类:问答    apache-drill

SQL Server 存储插件不起作用(SQL Server Storage Plugin not Working)

问题 我试图让 SQL Server 插件在 Apache Drill 中工作,如此处所述,但它似乎引发了以下错误: error (unable to create/update storage) 我的存储配置如下所示: { type: "jdbc", enabled: true, driver: "com.microsoft.sqlserver.jdbc.SQLServerDriver", url:"jdbc:sqlserver://10.60.68.145;databaseName=Demo", username:"ApacheDrill", password:"Passw0rd" } 我曾尝试将sqljdbc41.jar (来自 sqljdbc_4.1.5605.100_enu.tar.gz)和sqljdbc42.jar (来自 sqljdbc_4.2.6420.100_enu.tar.gz)复制到钻孔目录\apache-drill-1.40。 \3rdparty\但它似乎没有什么区别。 环境详细信息为:操作系统: Microsoft Windows 8.1 Pro ,SQL Server 版本: 11.0.3000和 Apache Drill 版本: 1.4.0 。

2021-10-14 19:52:05    分类:技术分享    sql-server   jdbc   apache-drill

SQL Server Storage Plugin not Working

I am trying to get the SQL Server Plugin working in Apache Drill as outlined here but it seems to be throwing the following error: error (unable to create/update storage) My storage config looks like this: { type: "jdbc", enabled: true, driver: "com.microsoft.sqlserver.jdbc.SQLServerDriver", url:"jdbc:sqlserver://10.60.68.145;databaseName=Demo", username:"ApacheDrill", password:"Passw0rd" } I have tried copying both sqljdbc41.jar (from sqljdbc_4.1.5605.100_enu.tar.gz) and sqljdbc42.jar (from sqljdbc_4.2.6420.100_enu.tar.gz) to the drill directory \apache-drill-1.4.0\jars\3rdparty\ but it doesn

2021-10-12 04:45:30    分类:问答    sql-server   jdbc   apache-drill

Apache 钻在 TSV 中丢失 unicode(Apache drill losing unicode in TSVs)

问题 我在 Apache 钻取中使用 text/tsv 存储插件,输出 tsv 文件有 ? 对于 unicode 字符。 如果我使用 JSON 存储插件,则 unicode 没问题。 就像是: 网址:http://localhost:8047/query.json 有效载荷: { "queryType":"SQL", "query": "CREATE TABLE st.`repo`.`test` AS SELECT * FROM st.`repo`.`unicode_data`" } 回答1 设置 JVM 文件编码,这是固定的。 JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF8

2021-10-10 07:36:11    分类:技术分享    csv   unicode   apache-drill

是否可以在不依赖 Hadoop 和 HDFS 的情况下使用 Java 读写 Parquet?(Is it possible to read and write Parquet using Java without a dependency on Hadoop and HDFS?)

问题 我一直在寻找这个问题的解决方案。 在我看来,如果不引入对 HDFS 和 Hadoop 的依赖,就无法在 Java 程序中嵌入读取和写入 Parquet 格式。 这样对吗? 我想在 Hadoop 集群之外的客户端机器上读写。 我开始对 Apache Drill 感到兴奋,但它似乎必须作为一个单独的进程运行。 我需要的是使用 Parquet 格式读取和写入文件的进程内能力。 回答1 您可以使用 java Parquet Client API 在 hadoop 集群之外编写 parquet 格式。 这是将镶木地板格式写入本地磁盘的 Java 示例代码。 import org.apache.avro.Schema; import org.apache.avro.generic.GenericData; import org.apache.avro.generic.GenericRecord; import org.apache.hadoop.fs.Path; import org.apache.parquet.avro.AvroSchemaConverter; import org.apache.parquet.avro.AvroWriteSupport; import org.apache.parquet.hadoop.ParquetWriter; import org

2021-10-09 11:11:18    分类:技术分享    java   hadoop   parquet   apache-drill   data-formats

如何在分布式模式下本地启动钻头?(How to start drillbit locally in distributed mode?)

问题 我下载了 Apache Drill v1.8,编辑了conf/drill-override.conf以进行以下更改: drill.exec: { cluster-id: "drillbits1", zk.connect: "10.178.23.140:2181,10.178.23.140:2182,10.178.23.140:2183,10.178.23.140:2184" } ..zookeeper 集群实际上由 4 个在同一台机器上启动的 Zookeeper 实例组成,我正在尝试启动 Drill。 (即我只使用一台机器作为 Apache Drill 和 Zookeeper 的集群,机器的 IP 是10.178.23.140 ) 所以我不断收到这个错误: Exception in thread "main" org.apache.drill.exec.exception.DrillbitStartupException: Failure during initial startup of Drillbit. at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:295) at org.apache.drill.exec.server.Drillbit.start(Drillbit.java:271) at

2021-10-08 19:01:29    分类:技术分享    apache-drill

将 HL7 v2 转换为 JSON(Converting HL7 v2 to JSON)

问题 我希望将 HL7 v2(较旧的 EDI 格式)消息转换为 JSON,因此我可以使它们在 Apache Drill 下可处理并在 Parquet 下可压缩。 我研究了 HAPI,但我没有找到将非 XML HL7 转换为 JSON 的实用程序。 有没有人对图书馆有建议或参考? 回答1 只需使用 HAPI 转换为 XML。 下面的代码需要 Saxon,因为 XML-to-JSON 需要 XSLT 2.0,但是如果您已经有了将 XML 转换为 JSON 的方法,那么您只需要前两行,这完全是 HAPI。 当然,您应该在本地下载 XSLT 以进行生产。 :-) String convertHL7ToJson(Message message) { try { DefaultXMLParser xmlParser = new DefaultXMLParser(new CanonicalModelClassFactory("2.6")); String xml = xmlParser.encode(message); Transformer xmlTransformer = TransformerFactory.newInstance("net.sf.saxon.TransformerFactoryImpl", null).newTransformer( new StreamSource

2021-10-08 02:15:12    分类:技术分享    apache-camel   apache-drill   hl7-v2

Converting HL7 v2 to JSON

I am looking to convert HL7 v2 (older EDI format) messages to JSON, so I could make them processable under Apache Drill and compressible under Parquet. I looked into HAPI, but I am not having luck finding utility for non-XML HL7 to JSON conversion. Does anyone have a suggestion or a reference to a library?

2021-10-08 01:53:21    分类:问答    apache-camel   apache-drill   hl7-v2