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 配置也是很重要的)