SparkSQL概念學習系列之為什麼使用SparkSQL?(二)
簡單地說,Shark 的下一代技術 是Spark SQL。
由於 Shark 底層依賴於 Hive,這個架構的優勢是對傳統 Hive 使用者可以將 Shark 無縫整合進現有系統執行查詢負載。
但是也看到一些問題:一方面,隨著版本升級,查詢優化器依賴於 Hive,不方便新增新的優化策略,需要進行另一套系統的學習和二次開發,學習成本很高。
另一方面, MapReduce是程式級並行,例如: Hive 在不同的程式空間會使用一些靜態變數,當在同一程式空間進行多執行緒並行執行,多執行緒同時寫同名稱的靜態變數會產生一致性問題,
所以Shark 需要使用另外一套獨立維護的 Hive 原始碼分支。而為了解決這個問題 AMPLab 和Databricks 利用 Catalyst 開發了 Spark SQL。
Spark 的全棧解決方案為使用者提供了多樣的資料分析框架,機器學習、圖計算、流計算如火如荼的發展和流行吸引了大批的學習者,為什麼人們今天還是要重視在大資料環境下使用 SQL 呢?筆者認為主要有以下幾點原因:
1)易用性與使用者慣性。在過去的很多年中,有大批的程式設計師的工作是圍繞著 資料庫 + 應用 的架構來做的,因為 SQL 的易用性提升了應用的開發效率。程式設計師已經習慣了業務邏輯程式碼呼叫 SQL 的模式去寫程式,慣性的力量是強大的,如果還能用原有的方式解決現有的大資料問題,何樂而不為呢?提供 SQL 和 JDBC 的支援會讓傳統使用者像以前一樣地書寫程式,大大減少遷移成本。
2)生態系統的力量。很多系統軟體效能好,但是未取得成功和沒落,很大程度上因為生態系統問題。傳統的 SQL 在 JDBC、 ODBC、 SQL 的各種標準下形成了一整套成熟的生態系統,很多應用元件和工具可以遷移使用,像一些視覺化的工具、資料分析工具等,原有企業的 IT 工具可以無縫過渡。
3)資料解耦, Spark SQL 正在擴充套件支援多種持久化層,使用者可以使用原有的持久化層儲存資料,但是也可以體驗和遷移到 Spark SQL 提供的資料分析環境下進行 BigData 的分析。
本文轉自大資料躺過的坑部落格園部落格,原文連結:http://www.cnblogs.com/zlslch/p/5725017.html,如需轉載請自行聯絡原作者
相關文章
- SparkSQL 概述SparkSQL
- SparkSql與Redis綜合練習SparkSQLRedis
- SparkSQL部署與簡單使用SparkSQL
- SparkSQL 調優SparkSQL
- SparkSQL手冊SparkSQL
- SparkSQL 相關APISparkSQLAPI
- 【Spark篇】---SparkSQL on Hive的配置和使用SparkSQLHive
- SparkSQL,如何將DataFrame轉為json格式SparkSQLJSON
- 《深入理解Spark》之sparkSQL 處理流程SparkSQL
- SparkSQL 開窗函式SparkSQL函式
- SparkSQL開窗函式SparkSQL函式
- SparkSQL與Hive metastore ParquetSparkSQLHiveAST
- 03-SparkSQL入門SparkSQL
- 好程式設計師大資料學習路線分享SparkSQl程式設計師大資料SparkSQL
- SparkSQL /DataFrame /Spark RDD誰快?SparkSQL
- SparkSql 06 開窗函式SparkSQL函式
- SparkSQL外部資料來源SparkSQL
- SparkSQL 在有讚的實踐SparkSQL
- SparkSQL練習:對學生選課成績進行分析計算SparkSQL
- 【Spark篇】---SparkSql之UDF函式和UDAF函式SparkSQL函式
- Spark開發-SparkSql的開發SparkSQL
- SparkSQL---開窗函式(java)SparkSQL函式Java
- 05-快速理解SparkSQL的DataSetSparkSQL
- SparkSQL中的UDF、UDAF、UDTF實現SparkSQL
- SparkSQL:Parquet資料來源之合併後設資料SparkSQL
- SparkSQL -- 02 【SparkSQL檔案的讀取與落地,和Hive的整合,內建函式,自定義函式】SparkSQLHive函式
- spark2.4.3 sparkSQL 使用者自定義函式筆記SparkSQL函式筆記
- 看SparkSql如何支撐企業數倉SparkSQL
- Python學習系列之學Python需要什麼軟體?Python
- presto、druid、sparkSQL、kylin的對比分析,如效能、架構等,有什麼異同?RESTUISparkSQL架構
- 【大資料】SparkSql 連線查詢中的謂詞下推處理 (二)大資料SparkSQL
- SparkSQL介紹並實現開窗函式SparkSQL函式
- SpringMVC系列知識:(二)什麼是springMVC,為什麼要使用springMVCSpringMVC
- 學習docker on windows (1): 為什麼要使用dockerDockerWindows
- 為什麼要學習和使用C語言?C語言
- 為什麼要學習 RustRust
- 為什麼要學習 Julia
- 為什麼要學習 Vim?