drill 是一个大数据sql 查询引擎(当然对于hdf也是支持写入的,我们的主要场景还是数据查询)
drill 支持的数据格式
drill 支持的数据格式较多,以下是一个简单的说明
- csv,tsv,psv或者其他任意用分隔符字段的数据(当然我们可以自己配置数据解析——通过存储插件配置选项)
- json (bjson也是可以的,比如mongo)
- parrquet
- avro
- hadoop sequcen
- apache 以及nginx 日志分析,内置了的数据解析函数
- 日志文件(基于内置的通用函数)
- pcap/pcap-ng 网络数据包抓包文件(libpcap,比如wireshark抓包数据)
支持的存储系统
- hbase
- hive
- kafaka
- mapr-db
- mongo
- opentsdb
- 主流基于jdbc驱动的关系型数据库
分布式文件系统的支持
- hdfs
- s3 (s3 兼容的都可以,minio很不错)
- mapr-fs
特性
- 简单易用
可以支持主流的数据库,同时我们可方便的集成主流的bi工具(可以通过jdbc连接drill,drill 就可以类似一个数据库引擎了,但是drill不是数据库引擎) - no schema
drill 不像其他需要写时schema,而且在运行时自己决定的(类似读时schema,但是也不是,因为drill并不需要定义任何,都是自动的),当然也是有
代价的,我们可能会有因为数据规范的问题,造成查询失败(尤其是在处理mongo多变数据的时候)
drill 性能
drill 大量水用了内存数据缓存以及cpu 优化,并通过网络进行数据交换,所以对于内存以及cpu 资源情况可能会有比较大的影响(jvm 配置也是很重要的)