天天看點

sql 循環查詢一個月的資料_360 開源 Quicksql 跨資料源統一 SQL 查詢引擎

sql 循環查詢一個月的資料_360 開源 Quicksql 跨資料源統一 SQL 查詢引擎

點選右上方,關注開源中國OSC頭條号,擷取最新技術資訊

QSQL是以SQL進行單一、混合查詢的一款産品。QSQL支援标準SQL語言(SQL-2003);QSQL支援查詢關系型資料庫、NoSQL式資料庫、原生不支援SQL查詢的存儲(如ES、Druid),及借助中間計算引擎實作混合查詢。QSQL最大的特點是獨立于計算引擎、存儲引擎本身,如此使用者隻需要關注于QSQL文法以及資料本身,就可完成資料計算、統計以及分析。

架構設計

sql 循環查詢一個月的資料_360 開源 Quicksql 跨資料源統一 SQL 查詢引擎

QSQL包含三層結構:

  • 文法解析層:負責SQL語句的解析、校驗、優化、混算SQL的切分以及最終生成Query Plan;
  • 計算引擎層:負責Query Plan路由到具體的執行計劃中,将Query Plan解釋為具體的執行引擎可識别的語言;
  • 資料存儲層:負責資料的提取、存儲;

編譯&部署

1 編譯環境依賴

  • java >= 1.8
  • scala >= 2.11
  • maven >= 3.3

2 編譯步驟

在源碼根目錄下,執行:

mvn -DskipTests clean package
           

編譯成功後執行:

ls ./target/
           

在./target/目錄下,會生成釋出包 qsql-0.5.tar.gz。

3 部署環境依賴

  • CentOS 6.2
  • java >= 1.8
  • scala >= 2.11
  • spark >= 2.2
  • [可選] 目前QSQL支援的存儲引擎MySQL、Elasticsearch、Hive、Druid

4 用戶端部署

在用戶端解壓縮釋出包 qsql-0.5.tar.gz

tar -zxvf ./qsql-0.5.tar.gz
           

建立軟鍊

ln -s qsql-0.5/ qsql
           

該釋出包解壓後的主要目錄結構如下:

  • bin:腳本目錄
  • conf:配置檔案
  • data:存放測試資料
  • lib:依賴jar包
  • metastore:中繼資料管理

在QSQL釋出包$QSQL_HOME/conf目錄中,分别配置如下檔案:

  • base-env.sh:設定相關環境變量,如:
  • JAVA_HOME
  • SPARK_HOME
  • QSQL_CLUSTER_URL
  • QSQL_HDFS_TMP
  • qsql-runner.properties:設定系統參數
  • log4j.properties:設定日志級别

運作示例

QSQL Shell

./bin/qsql -e "select 1"
           

詳情:English|中文

示例程式

QSQL附帶了示例目錄中的幾個示例程式。要運作其中一個,使用./run-example [params]。例如:

記憶體表資料:

./bin/run-example com.qihoo.qsql.CsvScanExample
           

Hive join MySQL:

./bin/run-example com.qihoo.qsql.CsvJoinWithEsExample
           

注意

./run-example 
           

運作混算,請確定目前用戶端存在Spark、Hive、MySQL環境。并且将Hive與MySQL的連接配接資訊添加到中繼資料管理中。

請點選下方“了解更多”檢視完整文章。

↓↓↓