Leo Yeh's Blog

SAS Viya (122)

教學目標

初步了解 SAS Viya 分析平台如何整合 AWS 雲端平台中的儲存服務之基本概念。

重點概念

首先目前已經有許多企業除了將運算移至雲端平台之外,也開始將資移至雲端平台,像是 AWS 雲端平台中提供 Amazon S3 儲存服務,其主要是一個物件儲存平台,具有簡單的網站服務操作界面能夠儲存和檢索任意數量的資料,並且我們能夠將各種格式的資料檔案儲存至 Amazon S3 中,至於 Amazon S3 主要在 2006 年發佈,距今已有十多年的時間,在這十多年的時間 AWS 雲端平台持續確保服務的安全性、可用性和可擴展性,並且還需要以更低的成本提供可預測的效能,同時我們很難透過檢修停機進行系統升的方式來實現上述目標,因為全世界各地許多業務皆依賴 AWS 雲端平台所提供 7 x 24 小時的可用性,所以需要建立一個導入新的軟體元件時不會引起服務癱瘓的架構,而 Amazon S3 這項服務的持續演進用開發機來形容最為適當,最開始是一架單引擎的小型通用飛機,在一段時間之後升級為一架波音 737,之後又換成了一支波音 747 小隊,而現今更像是由空中巴士 A380 组成的一支大型機隊,同時自始至终,AWS 雲端平台一邊確保飛機持續正常飛行,一邊將使用者從一架舊飛機移至另一架新飛機上面去,但是使用者對此毫不知情。此外目前在 AWS 雲端平台上的 Amazon S3 儲存服務已經是建立資料湖的首選用於最大儲存和最高效能的物件儲存服務,並且能夠在安全的儲存環境中高效的建立和擴展任意大小的資料湖,其中資料受到 99.999999999% 俗稱 11 個 9 的持續性保護,同時借助在 Amazon S3 上所建立的資料湖將能夠更進一步執行 AWS 雲端平台中的報表分析、大數據分析、人工智慧、機器學習、… 等實務應用。

接著我們在 SAS Viya 分析平台中使用 S3 類型的 CAS 資料館僅能夠讀取和寫入 SASHDAT 和 CSV 格式的資料檔案至 S3 儲存桶,至於 Base SAS 則能夠使用 PROC S3 管理 S3 儲存桶,其中操作主要包括建立儲存桶,資料夾和上載/下載資料檔案,請注意我們無法針對 S3 儲存桶使用 FILENAME 或 LIBNAME 的語句來讀取和寫入資料檔案。此時若我們能夠將 S3 儲存桶掛載為網路檔案系統 (Network File System,NFS),則就代表能夠使用任何工具與 S3 儲存桶進行存取,以利針對檔案和資料夾進行讀寫的操作。此時若我們要將 S3 儲存桶以檔案系統進行掛載,則有三種方式,分別為使用 S3fs 、使用 AWS Storage Gateway 以及使用 Objective-FS,其中所謂 S3fs 主要是一個 FUSE 檔案系統,允許我們將 Amazon S3 儲存桶安裝為本地檔案系統,所謂 FUSE 檔案系統是使用者空間檔案系統 (Filesystem in Userspace,FUSE) ,其主要讓無特權的使用者能夠無需編輯核心程式碼,而建立專屬的檔案系統,而目前 Linux 透過核心模組對此進行支援,而 S3fs 主要能夠讓使用者直接透過檔案系統的操作儲存資料檔案至 S3 儲存桶,以及能夠處理的物件大小,則取決於 Amazon S3,像是使用單個 PUT API 時最多 5 GB,使用 Multipart Upload API 時最多支持 5 TB,此外目前 S3fs 是一個穩定的軟體,並且應用於許多正式環境中的備份,至於要如何開始使用透過 S3fs 讓 SAS Viya 分析平台存取操作 S3 儲存庫中的資料,則請參考官方部落格文章,此外文章中有提到通常 S3 儲存庫不能提供與本地檔案系統相同的效能,主要由於網絡延遲,像是列出目錄之類的中繼資料操作就會有較差的效能,並且隨機寫入或附加到檔案需要重寫整個檔案,以及使用 S3fs 從 S3 儲存桶載入至 CAS 伺服器的資料是一個緩慢的過程,因為 S3fs 不是硬連接,所以會受 CAS 伺服器和 S3 儲存庫之間網路速度的限制,此時若透過在本機伺服器上使用 S3fs 的快取功能將能夠提高 S3 存取資料的效能,但這將會需要額外的儲存空間,請注意 SAS Viya 分析平台目前還不支持使用 S3fs 掛載檔案系統的平行載入資料,因此僅能使用序列載入資料。

再來我們除了透過 S3fs 將 S3 儲存桶以檔案系統進行掛載,還能夠透過 AWS Storage Gateway 將儲存服務安裝至 SAS Viya 分析平台中,所謂 AWS Storage Gateway 主要是一種混合式的儲存服務,其主要能夠讓應用程式無縫的使用 AWS 雲端平台中的儲存服務,並且我們能夠將該服務用於雲端資料備份,雲端資料處理,儲存分層,災難復原、…等,同時應用程式主要使用標準儲存協定,像是NFS、SMB 或 iSCSI,透過虛擬機器或硬體閘道設備連接至 AWS 雲端平台所提供的儲存服務,像是 Amazon S3、Amazon Glacier、Amazon EBS 和 AWS Backup,分別針對檔案,卷,快照和虛擬磁帶提供儲存服務,至於為何要使用 AWS Storage Gateway 服務呢?因為該服務具有高度優化的資料傳輸機制,以及用於對 S3 儲存桶進行低延遲本地的存取的暫存,請注意 AWS Storage Gateway 服務是一項收費服務,我們能夠在內部部署伺服器上託管 AWS Storage Gateways 服務,更能夠使用 EC2 伺服器進行託管,此時 AWS 將收取 EC2 伺服器的磁盤空間和從 S3 儲存桶至 AWS Storage Gateways 服務,再由 AWS Storage Gateways 服務至內部部署伺服器的網路流量相關費用,至於要如何開始使用透過 AWS Storage Gateways 服務讓 SAS Viya 分析平台存取操作 S3 儲存庫中的資料,則請參考官方部落格文章,此外文章中有提到 AWS Storage Gateway 主要使用 NFS 標準儲存協定讓我們存取 S3 儲存桶中的資料檔案,並且 AWS Storage Gateway 伺服器主要使用緩衝暫存區域下載 S3 儲存桶中的資料檔案用以改善資料傳輸時的延遲。

最後我們更能夠透過安裝 Objective-FS 軟體的方式將 S3 儲存桶中的資料檔案載入至 CAS 伺服器,接著將 CAS 資料表儲存為 S3 儲存桶中的資料檔案,所謂 Objective-FS 主要是一個共享的分散式 POSIX 檔案系統,其能夠用於雲端服務和伺服器之間提供持久性的資料儲存,而 Objective-FS 軟體在內部部伺服器上執行,並且使用 S3 API 直接存取雲端服務所儲存的物件,其多個節點將能夠同時寫入同一個檔案系統,並且查看彼此的資料,透過使用諸如寫入捆綁和讀取暫存之類的工作負載來維護檔案系統的速度和效能,同時能夠以端到端客戶端的加密方式來讀取和寫入資料至 S3 儲存桶中,也就是當在資料儲存和傳輸時進行加密,並且當資料在離開內部部署伺服器之前使用僅限使用者知道的密鑰進行加密,至於要如何開始使用透過 Objective-FS 軟體讓 SAS Viya 分析平台存取操作 S3 儲存庫中的資料檔案,則請參考官方部落格文章,此外文章中有提到使用 Objective-FS 儲存在 S3 儲存庫中的資料檔案只能通過 Objective-FS 軟體進行讀取 。

總結 SAS Viya 分析平台所提供強大報表分析、大數據分析、人工智慧、機器學習、… 等應用,將能夠透過 S3fs 、 AWS Storage Gateway 和 Objective-FS 等服務或軟體整合 AWS 雲端平台中 Amazon S3 儲存服務。

相關資源

⬅️ Go back