適用人群:建議先花1天時間通讀一遍官方文件之後再來看
dremio
,我理解是用來加工資料的,支援多種原始的資料格式,經過 dremio
的處理,可以加工出任何自己想要的資料。
資料方面目前來看,中文資源近乎沒有,主要的參考資料還是官方文件,dremio官網。
依照個人有限的使用經驗來看,需要了解幾個 dremio
中的基本概念。
- sources
資料來源,支援各種檔案(.csv,.json等),資料庫(mysql等),簡而言之,市面上常規的基本支援,詳細的需要參看官方文件。
- virtual dataset
虛擬資料集,這是核心,作用類似於中間表。
最重要的玩法就是virtual dataset
的使用,透過各種各樣的SQL,基於我們匯入的資料來源來生成各種各樣的中間表來獲得我們想要的資料,而且中間表查詢到的資料可以作為另一箇中間表的資料來源,這樣層層推進可以實現非常多的功能。
實戰舉例
假設我們的資料來源是網站的nginx
日誌,設定了資料來源之後,就有了一個基表(以此為基礎表)dremio
中的顯示可能是這樣的,這就是nginx
日誌經過dremio
解析之後拿到的資料,後續所有的操作都是以這個為基礎進行。
下面涉及到virtual dataset
使用。
建立一個SQL
對基表進行提取處理,拿到想要的資料或者處理成一箇中間表,然後再在這個中間表的基礎上進一步的提取處理(這個進一步可以多次),直到拿到想要的資料。
下面是一個示例。
進行到這裡,dremio
的作用基本上就體現出來了,匯入原始資料,然後一步步處理,生成眾多的中間表(中間表並不真實存在,儲存的只是執行語句),執行查詢時才會層層翻譯,去查詢處理基表,dremio
有提供API
,一般來講,處理的結果都會進行入庫處理,資料顯示都是直接從資料庫拉取資料。
排錯
基本的流程性問題明瞭之後,下一步是排錯處理。
每一個查詢都是一個job
,在top level
有job
列表,展示了所有job
的情況,執行時長,執行結果等資訊。
常規的錯誤根據丟擲的error
資訊處理即可,一般都是中間表處理的結果不符合預期導致的。
特別注意的錯誤:
dremio,報錯 exceeds the size limit of 32000 bytes
本作品採用《CC 協議》,轉載必須註明作者和本文連結