資料處理 SQL (2)

基本介紹

教學目標

初步了解從資料倉儲談起 SQL 對於資料分析的重要性。

重點概念

最早 1960 年開始就有大量的檔案和報表需要進行同步處理、1970 年開始有資料庫管理系統,1975 年開始有線上交易處理 (Online-transaction Processing,OLTP) 的應用,直到 1980 年才開始有 PC 和 SQL 語言等應用,雖然當時已有管理資訊系統 (Management Information Systems,MIS) 和決策資源系統 (Decision Support Systems,DSS) 應用資料至管理決策,可是卻沒有資料庫可以同時處理操作交易處理和分析處理,也因此在 1990 年 W. H. Inmon 就提出資料倉儲 (Data Warehouse) 之應用。在過去企業談資料倉儲最常見的就是 Teradata 它是早在 1992 年就採用在分散式架構以大規模平行處理 (Massively Parallel Processing,MPP) 的系統進行資料倉儲之商業應用,更在 1994 年被 Gartner 稱為商業平行處理之領導者,保持領先地位直到 2001 年介紹金融產業針對資料分析架構的解決方案,以台灣為例就有國泰世華銀行和中國信託銀行是採用 Teradata 的解決方案,資訊人員只需要學習 SQL 語言 即可撈取資料倉儲的資料進行分析。

然而目前針對大數據議題進行資料分析之應用,我們最常聽到的就是由 Doug Cutting 在 2006 年所建立的 Hadoop 開放源始碼架構,主要是從 1997 年的搜尋引擎專案 (Apache Lucene) 至 2001 年的網路爬蟲 (Apache Nutch) 陸續實作 Google 所發表的分散式儲存技術 (Google File System,GFS) 和平行化計算 (MapReduce) 論文理論,接著在 2006 年將相關技術匯整至搜尋引擎專案 (Apache Lucene) 中,重新命名為 Hadoop。在此之後就有許許多多的大公司陸續延伸 Hadoop 專案的整合應用,例如 Yahoo!、Facebook、Twitter、LinkedIn、Cloudera、Hortonworks、MapR、Amazon、Microsoft、IBM、… 等網路大公司,其中 Facebook 在 2012 年釋出 Hive 專案主要就是在基於 Hadoop 專案架構上提供資料匯整和即席查詢 (Ad-hoc Query) 的資料倉儲架構,簡單來說就是資訊人員只需要學習 SQL 語言 即可撈取資料倉儲的資料進行分析。

其中 Teradata 主要以關聯式資料庫處理結構化資料,Hive 則是以在 HDFS 架構上處理非結構化資料 (MapReduce 處理) 皆是透過 SQL 語言 進行資料分析和查詢,當然 Teradata 更提供 Hadoop 連接器 (Teradata Connector for Hadoop,TDCH) 直接與底層的 Hadoop 相關專案架構 (Cloudera、Hortonworks、MapR) 進行整合應用,此外 Facebook 在 2013 年推出針對大數據 (>1PB) 的分散式 SQL 查詢引擎,至 2015 年 Teradata 成為全球第一家為 Presto 提供商業支援的公司,可以從不斷成長的 Presto 社群取得大量的回饋資訊,並且根據這些資訊提供最佳的 SQL on Hadoop 之應用。

因此在企業結構化關聯性資料之大小為 TB (terabyte) 世代 Teradata 是最適合的資料分析架構,然而在社群網路非結構化關聯性資料之大小為 PB (petabyte) 世代 Hadoop 將會是最適合的資料分析架構,那接著下來 EB (exabyte) 、ZB (zettabyte) 或 YB (yottabyte) 的不同世代因應不同需求的資料分析,將會有最先進技術開發出的資料分析架構我們需要不斷學習精進,若是對於初學者而言需要先學會其中一項專業技術建議先學習 SQL 結構化查詢語言

相關資源