突破口在哪?
傳統資料倉庫的改造工作千頭萬緒。完全推倒重來?成本高,周期長,風險大,看起來不是一個好的選擇。
另起爐竈,建立一個資料湖?又往往會面臨業務應用場景缺乏,系統定位不清晰的問題。
如何尋找突破口,既要保障業務的持續運作,又能引入新技術、新方法,推動系統變革?在企業的系統架構中引入記憶體計算技術是一個不錯的選擇。
01
記憶體計算,唯快不破
站在風口上,才能飛得更高,飛得更遠。當代硬體的快速發展對資料庫系統架構産生了的深遠的影響。
近年來, 多核CPU的快速發展, 記憶體價格的不斷下降, 以及系統架構的不斷演進,為大資料處理在硬體方面提供了有利的條件。SAP公司在2010年推出的HANA記憶體計算使得記憶體計算再次得到學術界和工業界的廣泛關注。2012年,加州大學伯克利分校開發的Apache Spark。IBM的solidDB、Oracle的Exadata X3、微軟的SQL Server 2012也引入了記憶體計算。
為了充分發揮現代硬體的高性能,資料管理系統必須具備以下特點:
• 記憶體資料庫
所有相關的資料必須儲存在主記憶體中,是以讀取操作可以在沒有磁盤I/O的情況下執行。磁盤存儲仍然需要,用于持久存儲資料。
• 高速緩存對記憶體組織、優化和執行高度敏感
設計必須最小化CPU緩存未命中的次數,避免因通路記憶體而導緻CPU停滞。所謂緩存未命中是指資料塊不在CPU高速緩存中而不得不從記憶體中讀取的情況。實作這個目标的一種方法是在記憶體中使用基于列的存儲。
• 支援并行執行
近年來,CPU并沒有通過提高時鐘頻率變得更快,而是增加了處理器核心的數量。軟體要充分利用多核處理器,必須支援并行執行,并且使用支援核心數量擴充的架構。對于資料管理系統,這意味着必須能夠對資料進行分區,以便并行地執行計算。為了確定可伸縮性,必須盡可能避免順序處理。
02
為什麼分析場景中更多使用列式存儲
實作上述目标的步驟之一是在适當的情況下按列式存儲的方式組織資料。從概念上來說,一張資料庫表是一個二維的資料結構,以行和列的形式組織多個單元格。而計算機記憶體則是以線性順序組織的。行式存儲将表中一行包含的所有字段順序存儲,之後再存儲下一行的字段。在列式存儲中,同一列的所有條目被存儲在連續的存儲單元中。
下面的應用場景推薦使用列式存儲方式:
• 隻對單列或者幾列執行計算。
• 隻根據幾列的值搜尋表。
• 表中有大量的列。
• 表中有大量的行,并且需要執行基于列的操作(聚合、掃描等等)。
• 相對于行數而言,大多數列隻含有少量的不同值,是以可以實作很高的壓縮率。
在适用列式存儲的使用場景中,列式存儲表有諸多優勢:
優勢1、更高的資料壓縮率。
優勢2、更好的列操作性能。
優勢3、無需額外的索引。
優勢4、無需物化聚合。
優勢5、并行處理。
03
引入SAP HANA,讓資料平台飛起來
SAP HANA是SAP公司在2010年11月份推出的高性能資料處理和創新平台,也是所有SAP應用系統的戰略平台。SAP HANA核心是SAP HANA資料庫,一種創新的記憶體計算資料庫管理系統,可充分利用現代硬體的計算能力,提供應用系統的性能,降低使用者擁有成本,并支援前所未有的新場景和新應用系統。
SAP HANA概覽
SAP HANA平台主要提供了以下四種服務:
首先,SAPHANA提供資料庫管理服務。
SAP HANA資料庫是支援多種資料存儲範式的混合型資料庫管理系統。其中包括一個完整的關系資料庫管理系統,即可以支援資料庫表在記憶體中基于列或行的存儲,也支援資料庫表在磁盤中的列式存儲。
其次,SAP HANA提供應用開發服務。
SAP HANA 擴充應用服務(extended application services,XS)是基于SAP HANA資料庫上的一層。它提供了執行基于SAPHANA的網頁應用平台。XS進階版平台支援多種程式設計語言和執行環境,如 Java, Node.js等。在雲端,XS進階版是具有一系列SAP擴充和增強的Cloud Foundry[1]平台。
第三,資料處理與分析智能是大資料平台必不可少的功能。
SAP HANA并不局限于傳統資料庫的功能,還提供了一系列資料分析的擴充功能。這些擴充功能有助于SAP HANA平台上處理一些常見的非結構化的大資料類型,通過這些功能擴充, SAP HANA支援各種結構化程度不同的資料:從結構化的關系型資料,到非結構化的文本結構,再到不規則結構的資料圖。
最後,資料內建與品質管理是SAP HANA提供的另一個重要的服務。
SAP HANA提供了多種機制,實作資料提供和外部資料源的內建:
1. 智能資料通路(Smart data access,SDA)提供了資料聯邦的能力,可以在SAPHANA中實時查詢不同的遠端資料源,無需建立備援的資料副本。
2. 企業資訊管理(Enterprise information management,EIM),包括智能資料內建和智能資料品質。
3. 智能資料流:将SAP事件流處理器的消費資料流和複雜事件處理功能內建到HANA中。
基于這些特性,SAP HANA可以通過SAP IQ或者與Apache Hadoop內建,進行大資料處理。Apache Hadoop在可擴充和可靠的分布檔案系統上提供了虛拟無限存儲空間,Hadoop家族在Hadoop基礎上提供了豐富的資料管理和處理引擎。Hadoop的吸引力在于它運作在商業硬體的大型叢集上,起步成本低,并可以靈活進行擴充。
SAP HANA通過多種方式與Hadoop進行內建。一種方式是将Hadoop作為SAP HANA的遠端資料源,并使用SAP HANA資料庫的關系型查詢通路Hadoop的資料。另一個方式是使用SQL語句中基于Hadoop的虛拟函數。當執行這種SQL語句時,SAP HANA觸發了Hadoop中的一個map/reduce作業。
-End-
本文作者:陳永傑