最近在打造一款視覺化分析產品, 需要用到組合多資料來源, 進行查詢, 看了挺多開源的外掛, 發現目前只有Presto比較符合, 但是由於Presto沒有多使用者機制和資源管理, 所以需要在這基本上構建多使用者機制。
要編譯原始碼, 發現其用了程式碼模板, 因為sql解析語法的原因吧, 所以先用antlr4去編譯專案presto-parser
PrestoSystemRequirements提醒必須要
Presto requires Linux or Mac OS X
我先註解看看能不能跑下去,
還有非常重要的一點, 就是要設定跳過程式碼檢查
<air.check.skip-all>true</air.check.skip-all> , windows下不能正常執行
好像因為windows下getMaxFileDescriptorCount獲取不到最大檔案讀取限制
註解掉, 換個常數就可以跑了
private static OptionalLong getMaxFileDescriptorCount() { try { //MBeanServer mbeanServer = ManagementFactory.getPlatformMBeanServer(); //Object maxFileDescriptorCount = mbeanServer.getAttribute(ObjectName.getInstance(OPERATING_SYSTEM_MXBEAN_NAME), "MaxFileDescriptorCount"); //return OptionalLong.of(((Number) maxFileDescriptorCount).longValue()); return OptionalLong.of(10000); } catch (Exception e) { return OptionalLong.empty(); } }
正常跑起, 接下來做改造,
改造成功, 後續再寫