答案是肯定的,我這兩天剛好在做這個研究。
從storm 1.1.0開始,加入了storm sql功能,目前仍是experimental(實驗性) 功能。但經本人的實踐,目前已經能夠滿足大部分需求。
storm sq概述
Storm SQL 使使用者Storm 可以使用標準的sql語句實現複雜的拓撲功能,把kafka等輸入輸出資料來源全部抽象為table,透過where條件作為bolt中的判斷條件,大大減少了使用者的學習使用成本,等到退出穩定版,必定成為流式處理的熱門應用
storm sql舉例
//建立 TABLE ORDERS對應於kafka的輸入spout
CREATE EXTERNAL TABLE ORDERS (ID INT PRIMARY KEY, UNIT_PRICE INT, QUANTITY INT)
LOCATION "kafka://localhost:2181/brokers?topic=orders"
//建立 TABLE LARGE_ORDERS 對應於kafka的輸出bolt
CREATE EXTERNAL TABLE LARGE_ORDERS (ID INT PRIMARY KEY, TOTAL INT)
LOCATION "kafka://localhost:2181/brokers?topic=large_orders"
TBLPROPERTIES "{"producer":{"bootstrap.servers":"localhost:9092","acks":"1","key.serializer":"org.apache.org.apache.storm.kafka.IntSerializer","value.serializer":"org.apache.org.apache.storm.kafka.ByteBufferSerializer"}}"
//使用 INSERT INTO ..SELECT... 語句,實現有條件的將輸入轉到輸出
INSERT INTO LARGE_ORDERS SELECT ID, UNIT_PRICE * QUANTITY AS TOTAL FROM ORDERS WHERE UNIT_PRICE * QUANTITY > 50
storm sq底層
在底層, StromSQL 把 SQL 編譯為 Trident 拓撲,在把Trident 流轉換為傳統的spout、bolt來執行
storm sql當前缺陷
不支援聚合和連線
不支援視窗函式
上述就是對storm sql的一些簡單介紹,由於篇幅有限,講解的不太細緻。
學習使人充實!!!最後祝大家都可以在大資料的海洋裡隨心遨遊!
答案是肯定的,我這兩天剛好在做這個研究。
從storm 1.1.0開始,加入了storm sql功能,目前仍是experimental(實驗性) 功能。但經本人的實踐,目前已經能夠滿足大部分需求。
storm sq概述
Storm SQL 使使用者Storm 可以使用標準的sql語句實現複雜的拓撲功能,把kafka等輸入輸出資料來源全部抽象為table,透過where條件作為bolt中的判斷條件,大大減少了使用者的學習使用成本,等到退出穩定版,必定成為流式處理的熱門應用
storm sql舉例
//建立 TABLE ORDERS對應於kafka的輸入spout
CREATE EXTERNAL TABLE ORDERS (ID INT PRIMARY KEY, UNIT_PRICE INT, QUANTITY INT)
LOCATION "kafka://localhost:2181/brokers?topic=orders"
//建立 TABLE LARGE_ORDERS 對應於kafka的輸出bolt
CREATE EXTERNAL TABLE LARGE_ORDERS (ID INT PRIMARY KEY, TOTAL INT)
LOCATION "kafka://localhost:2181/brokers?topic=large_orders"
TBLPROPERTIES "{"producer":{"bootstrap.servers":"localhost:9092","acks":"1","key.serializer":"org.apache.org.apache.storm.kafka.IntSerializer","value.serializer":"org.apache.org.apache.storm.kafka.ByteBufferSerializer"}}"
//使用 INSERT INTO ..SELECT... 語句,實現有條件的將輸入轉到輸出
INSERT INTO LARGE_ORDERS SELECT ID, UNIT_PRICE * QUANTITY AS TOTAL FROM ORDERS WHERE UNIT_PRICE * QUANTITY > 50
storm sq底層
在底層, StromSQL 把 SQL 編譯為 Trident 拓撲,在把Trident 流轉換為傳統的spout、bolt來執行
storm sql當前缺陷
不支援聚合和連線
不支援視窗函式
上述就是對storm sql的一些簡單介紹,由於篇幅有限,講解的不太細緻。
學習使人充實!!!最後祝大家都可以在大資料的海洋裡隨心遨遊!