欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

rdbnosql筆試題的簡單介紹

Python學(xué)哪個數(shù)據(jù)庫

主流的關(guān)系型數(shù)據(jù)庫:

成都創(chuàng)新互聯(lián)公司長期為上千多家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊從業(yè)經(jīng)驗10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為江門企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計、做網(wǎng)站江門網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗和眾多成功案例,為您定制開發(fā)。

1. MySQL:目前使用最廣泛的開源、多平臺的關(guān)系型數(shù)據(jù)庫,支持事務(wù)、符合ACID、支持多數(shù)SQL規(guī)范。

2. SQL Server:支持事務(wù)、符合ACID、支持多數(shù)SQL規(guī)范,屬于商業(yè)軟件,需要注意版權(quán)和licence授權(quán)費用。

3. Oracle:支持事務(wù),符合關(guān)系型數(shù)據(jù)庫原理,符合ACID,支持多數(shù)SQL規(guī)范,功能最強大、最復(fù)雜、市場占比最高的商業(yè)數(shù)據(jù)庫。

4. Postgresql:開源、多平臺、關(guān)系型數(shù)據(jù)庫,功能最強大的開源數(shù)據(jù)庫,需要Python環(huán)境,基于postgresql的time

scaleDB,是目前比較火的時序數(shù)據(jù)庫之一。

非關(guān)系型數(shù)據(jù)庫:

非關(guān)系型數(shù)據(jù)庫也被稱為nosql,作為關(guān)系型數(shù)據(jù)庫的一個補充,能在特定場景和特點問題下發(fā)揮高效率和高性能。

常見的非關(guān)系型數(shù)據(jù)庫類型有鍵值存儲數(shù)據(jù)庫和面向文檔數(shù)據(jù)庫。

鍵值存儲數(shù)據(jù)庫類似hash,通過key做添加、刪除、查詢、性能高,優(yōu)勢在于簡單、易部署、高并發(fā),主要產(chǎn)品有:

Redis:開源、Linux平臺、key-value鍵值型nosql數(shù)據(jù)庫,簡單穩(wěn)定,非常主流的、全數(shù)據(jù)in-momory,定位于快的鍵值型nosql數(shù)據(jù)庫。

Memcaced:一個開源的、高性能的、具有分布式內(nèi)存對象的緩存系統(tǒng),通過它可以減輕數(shù)據(jù)庫負(fù)載,加速動態(tài)的web應(yīng)用。

面向文檔數(shù)據(jù)庫以文檔的形式存儲,每個文檔是一系列數(shù)據(jù)項的集合,每個數(shù)據(jù)項有名稱與對應(yīng)的值,主要產(chǎn)品有:

MongoDB:開源、多平臺、文檔型nosql數(shù)據(jù)庫,最像關(guān)系型數(shù)據(jù)庫,定位于靈活的nosql數(shù)據(jù)庫。適用于網(wǎng)站后臺數(shù)據(jù)庫、小文件系統(tǒng)、日志分析系統(tǒng)。

關(guān)于軟考中數(shù)據(jù)庫系統(tǒng)工程師

數(shù)據(jù)庫系統(tǒng)工程師級考試大綱

一、考試說明

1.考試要求

(1)掌握計算機(jī)體系結(jié)構(gòu)以及各主要部件的性能和基本工作原理;

(2)掌握操作系統(tǒng)、程序設(shè)計語言的基礎(chǔ)知識,了解編譯程序的基本知識;

(3)熟練掌握常用數(shù)據(jù)結(jié)構(gòu)和常用算法;

(4)熟悉軟件工程和軟件開發(fā)項目管理的基礎(chǔ)知識;

(5)熟悉計算機(jī)網(wǎng)絡(luò)的原理和技術(shù);

(6)掌握數(shù)據(jù)庫原理及基本理論;

(7)掌握常用的大型數(shù)據(jù)庫管理系統(tǒng)的應(yīng)用技術(shù);

(8)掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計方法和開發(fā)過程;

(9)熟悉數(shù)據(jù)庫系統(tǒng)的管理和維護(hù)方法,了解相關(guān)的安全技術(shù);

(10)了解數(shù)據(jù)庫發(fā)展趨勢與新技術(shù);

(11)掌握常用信息技術(shù)標(biāo)準(zhǔn)、安全性,以及有關(guān)法律、法規(guī)的基本知識;

(12)了解信息化、計算機(jī)應(yīng)用的基礎(chǔ)知識;

(13)正確閱讀和理解計算機(jī)領(lǐng)域的英文資料。

2. 通過本考試的合格人員能參與應(yīng)用信息系統(tǒng)的規(guī)劃、設(shè)計、構(gòu)建、運行和管理,能按照用戶需求,設(shè)計、建立、運行、維護(hù)高質(zhì)量的數(shù)據(jù)庫和數(shù)據(jù)倉庫;作為數(shù)據(jù)管理員管理信息系統(tǒng)中的數(shù)據(jù)資源,作為數(shù)據(jù)庫管理員建立和維護(hù)核心數(shù)據(jù)庫;擔(dān)任數(shù)據(jù)庫系統(tǒng)有關(guān)的技術(shù)支持,同時具備一定的網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計及組網(wǎng)能力;具有工程師的實際工作能力和業(yè)務(wù)水平,能指導(dǎo)計算機(jī)技術(shù)與軟件專業(yè)助理工程師(或技術(shù)員)工作。

3. 本考試設(shè)置的科目包括

(1)信息系統(tǒng)知識,考試時間為150分鐘,筆試;

(2)數(shù)據(jù)庫系統(tǒng)設(shè)計與管理,考試時間為150分鐘,筆試。

二、考試范圍

考試科目1:信息系統(tǒng)知識

1. 計算機(jī)系統(tǒng)知識

1.1 硬件知識

1.1.1 計算機(jī)體系結(jié)構(gòu)和主要部件的基本工作原理

?CPU和存儲器的組成、性能、基本工作原理

?常用I/O設(shè)備、通信設(shè)備的性能,以及基本工作原理

?I/O接口的功能、類型和特點

?CISC/RISC,流水線操作,多處理機(jī),并行處理

1.1.2 存儲系統(tǒng)

?虛擬存儲器基本工作原理,多級存儲體系

?RAID類型和特性

1.1.3 安全性、可靠性與系統(tǒng)性能評測基礎(chǔ)知識

?診斷與容錯

?系統(tǒng)可靠性分析評價

? 計算機(jī)系統(tǒng)性能評測方法

1.2 數(shù)據(jù)結(jié)構(gòu)與算法

1.2.1 常用數(shù)據(jù)結(jié)構(gòu)

?數(shù)組(靜態(tài)數(shù)組、動態(tài)數(shù)組)

?線性表、鏈表(單向鏈表、雙向鏈表、循環(huán)鏈表)

?棧和隊列

?樹(二叉樹、查找樹、平衡樹、遍歷樹、堆)、圖、集合的定義、存儲和操作

?Hash(存儲位置計算、碰撞處理)

1.2.2 常用算法

?排序算法、查找算法、數(shù)值計算、字符串處理、數(shù)據(jù)壓縮算法、遞歸算法、圖的相關(guān)算法

?算法與數(shù)據(jù)結(jié)構(gòu)的關(guān)系,算法效率,算法設(shè)計,算法描述(流程圖、偽代碼、決策表),算法的復(fù)雜性

1.3 軟件知識

1.3.1 操作系統(tǒng)知識

?操作系統(tǒng)的類型、特征、地位、內(nèi)核(中斷控制)、進(jìn)程、線程概念

?處理機(jī)管理(狀態(tài)轉(zhuǎn)換、同步與互斥、信號燈、分時輪轉(zhuǎn)、搶占、死鎖)

?存儲管理(主存保護(hù)、動態(tài)連接分配、分段、分頁、虛存)

?設(shè)備管理(I/O控制、假脫機(jī)、磁盤調(diào)度)

?文件管理(文件目錄、文件的結(jié)構(gòu)和組織、存取方法、存取控制、恢復(fù)處理、共享和安全)

?作業(yè)管理(作業(yè)調(diào)度、作業(yè)控制語言(JCL)、多道程序設(shè)計)

?漢字處理,多媒體處理,人機(jī)界面

?網(wǎng)絡(luò)操作系統(tǒng)和嵌入式操作系統(tǒng)基礎(chǔ)知識

?操作系統(tǒng)的配置

1.3.2 程序設(shè)計語言和語言處理程序的知識

? 匯編、編譯、解釋系統(tǒng)的基礎(chǔ)知識和基本工作原理

? 程序設(shè)計語言的基本成分:數(shù)據(jù)、運算、控制和傳輸,程序調(diào)用的實現(xiàn)機(jī)制

? 各類程序設(shè)計語言的主要特點和適用情況

1.4 計算機(jī)網(wǎng)絡(luò)知識

?網(wǎng)絡(luò)體系結(jié)構(gòu)(網(wǎng)絡(luò)拓?fù)洹SI/RM、基本的網(wǎng)絡(luò)協(xié)議)

?傳輸介質(zhì),傳輸技術(shù),傳輸方法,傳輸控制

?常用網(wǎng)絡(luò)設(shè)備和各類通信設(shè)備

?Client/Server結(jié)構(gòu)、Browser/Server結(jié)構(gòu)、Browser/Web/Datebase結(jié)構(gòu)

?LAN拓?fù)洌嫒】刂疲琇AN的組網(wǎng),LAN間連接,LAN-WAN連接

?因特網(wǎng)基礎(chǔ)知識及應(yīng)用

?網(wǎng)絡(luò)軟件

?網(wǎng)絡(luò)管理

?網(wǎng)絡(luò)性能分析

?網(wǎng)絡(luò)有關(guān)的法律、法規(guī)

2. 數(shù)據(jù)庫技術(shù)

2.1 數(shù)據(jù)庫技術(shù)基礎(chǔ)

2.1.1 數(shù)據(jù)庫模型

?數(shù)據(jù)庫系統(tǒng)的三級模式(概念模式、外模式、內(nèi)模式),兩級映像(概念模式/外模式、外模式/內(nèi)模式)

?數(shù)據(jù)庫模型:數(shù)據(jù)模型的組成要素,概念數(shù)據(jù)模型ER圖(實體、屬性、關(guān)系),邏輯數(shù)據(jù)模型(關(guān)系模型、層次模型、網(wǎng)絡(luò)模型)

2.1.2 數(shù)據(jù)庫管理系統(tǒng)的功能和特征

?主要功能(數(shù)據(jù)庫定義、數(shù)據(jù)庫操作、數(shù)據(jù)庫控制、事務(wù)管理、用戶視圖)

?特征(確保數(shù)據(jù)獨立性、數(shù)據(jù)庫存取、同時執(zhí)行過程、排它控制、故障恢復(fù)、安全性、完整性)

?RDB(關(guān)系數(shù)據(jù)庫),OODB(面向?qū)ο髷?shù)據(jù)庫),ORDB(對象關(guān)系數(shù)據(jù)庫),NDB(網(wǎng)狀數(shù)據(jù)庫)

?幾種常用Web數(shù)據(jù)庫的特點

2.1.3 數(shù)據(jù)庫系統(tǒng)體系結(jié)構(gòu)

? 集中式數(shù)據(jù)庫系統(tǒng)

? Client/Server數(shù)據(jù)庫系統(tǒng)

? 并行數(shù)據(jù)庫系統(tǒng)

? 分布式數(shù)據(jù)庫系統(tǒng)

? 對象關(guān)系數(shù)據(jù)庫系統(tǒng)

2.2 數(shù)據(jù)操作

2.2.1 關(guān)系運算

?關(guān)系代數(shù)運算(并、交、差、笛卡兒積、選擇、投影、連接、除)

?元組演算

?完整性約束

2.2.2 關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言(SQL)

?SQL的功能與特點

?用SQL進(jìn)行數(shù)據(jù)定義(表、視圖、索引、約束)

?用SQL進(jìn)行數(shù)據(jù)操作(數(shù)據(jù)檢索、數(shù)據(jù)插入/刪除/更新、觸發(fā)控制)

?安全性和授權(quán)

?程序中的API,嵌入SQL

2.3 數(shù)據(jù)庫的控制功能

?數(shù)據(jù)庫事務(wù)管理(ACID屬性)

?數(shù)據(jù)庫備份與恢復(fù)技術(shù)(UNDO、REDO)

?并發(fā)控制

2.4 數(shù)據(jù)庫設(shè)計基礎(chǔ)理論

2.4.1 關(guān)系數(shù)據(jù)庫設(shè)計

?函數(shù)依賴

?規(guī)范化(第一范式、第二范式、第三范式、BC范式、第四范式、第五范式)

?模式分解及分解應(yīng)遵循的原則

2.4.2 對象關(guān)系數(shù)據(jù)庫設(shè)計

?嵌套關(guān)系、 復(fù)雜類型,繼承與引用類型

?與復(fù)雜類型有關(guān)的查詢

?SQL中的函數(shù)與過程

?對象關(guān)系

2.5 數(shù)據(jù)挖掘和數(shù)據(jù)倉庫基礎(chǔ)知識

?數(shù)據(jù)挖掘應(yīng)用和分類

?關(guān)聯(lián)規(guī)則、聚類

?數(shù)據(jù)倉庫的成分

?數(shù)據(jù)倉庫的模式

2.6 多媒體基本知識

2.6.1 多媒體技術(shù)基本概念

?多媒體系統(tǒng)基礎(chǔ)知識

?常用多媒體文件格式

2.6.2 多媒體壓縮編碼技術(shù)

?多媒體壓縮編碼技術(shù)

?統(tǒng)計編碼

?預(yù)測編碼

?編碼的國際標(biāo)準(zhǔn)

2.6.3多媒體技術(shù)應(yīng)用

?簡單圖形的繪制,圖像文件的處理方法

?音頻和視頻信息的應(yīng)用

?多媒體應(yīng)用開發(fā)過程

2.7 系統(tǒng)性能知識

?性能計算(響應(yīng)時間、吞吐量、周轉(zhuǎn)時間)

?性能指標(biāo)和性能設(shè)計

?性能測試和性能評估

2.8 計算機(jī)應(yīng)用基礎(chǔ)知識

?信息管理、數(shù)據(jù)處理、輔助設(shè)計、科學(xué)計算,人工智能等基礎(chǔ)知識

?遠(yuǎn)程通信服務(wù)及相關(guān)通信協(xié)議基礎(chǔ)知識

3. 系統(tǒng)開發(fā)和運行維護(hù)知識

3.1 軟件工程、軟件過程改進(jìn)和軟件開發(fā)項目管理知識

?軟件工程知識

?軟件開發(fā)生命周期階段目標(biāo)和任務(wù)

?軟件開發(fā)項目基礎(chǔ)知識(時間管理、成本管理、質(zhì)量管理、人力資源管理、風(fēng)險管理等)及其常用管理工具

?主要的軟件開發(fā)方法(生命周期法、原型法、面向?qū)ο蠓āASE)

?軟件開發(fā)工具與環(huán)境知識

?軟件質(zhì)量管理基礎(chǔ)知識

?軟件過程改進(jìn)基礎(chǔ)知識

?軟件開發(fā)過程評估、軟件能力成熟度評估的基礎(chǔ)知識

3.2 系統(tǒng)分析基礎(chǔ)知識

?系統(tǒng)分析的目的和任務(wù)

?結(jié)構(gòu)化分析方法(數(shù)據(jù)流圖(DFD)和數(shù)據(jù)字典(DD),實體關(guān)系圖(ERD),描述加工處理的結(jié)構(gòu)化語言)

?統(tǒng)一建模語言(UML)

?系統(tǒng)規(guī)格說明書

3.3 系統(tǒng)設(shè)計知識

?系統(tǒng)設(shè)計的目的和任務(wù)

?結(jié)構(gòu)化設(shè)計方法和工具(系統(tǒng)流程圖、HIPO圖、控制流程圖)

?系統(tǒng)總體結(jié)構(gòu)設(shè)計(總體布局,設(shè)計原則,模塊結(jié)構(gòu)設(shè)計,數(shù)據(jù)存取設(shè)計,系統(tǒng)配置方案)

?系統(tǒng)詳細(xì)設(shè)計(代碼設(shè)計、數(shù)據(jù)庫設(shè)計、用戶界面設(shè)計、處理過程設(shè)計)

?系統(tǒng)設(shè)計說明書

3.4 系統(tǒng)實施知識

?系統(tǒng)實施的主要任務(wù)

?結(jié)構(gòu)化程序設(shè)計、面向?qū)ο蟪绦蛟O(shè)計、可視化程序設(shè)計

?程序設(shè)計語言的選擇、程序設(shè)計風(fēng)格

?系統(tǒng)測試的目的、類型,系統(tǒng)測試方法(黑盒測試、白盒測試、灰盒測試)

?測試設(shè)計和管理(錯誤曲線、錯誤排除、收斂、注入故障、測試試用例設(shè)計、系統(tǒng)測試報告)

?系統(tǒng)轉(zhuǎn)換基礎(chǔ)知識

3.5 系統(tǒng)運行和維護(hù)知識

?系統(tǒng)運行管理知識

?系統(tǒng)維護(hù)知識

?系統(tǒng)評價知識

4. 安全性知識

?安全性基本概念(網(wǎng)絡(luò)安全、操作系統(tǒng)安全、數(shù)據(jù)庫安全)

?計算機(jī)病毒的防治,計算機(jī)犯罪的防范,容災(zāi)

?訪問控制、防闖入、安全管理措施

?加密與解密機(jī)制

?風(fēng)險分析、風(fēng)險類型、抗風(fēng)險措施和內(nèi)部控制

5.標(biāo)準(zhǔn)化知識

?標(biāo)準(zhǔn)化意識,標(biāo)準(zhǔn)化的發(fā)展,標(biāo)準(zhǔn)出臺過程

?國際標(biāo)準(zhǔn)、國家標(biāo)準(zhǔn)、行業(yè)標(biāo)準(zhǔn)、企業(yè)標(biāo)準(zhǔn)基本知識

?代碼標(biāo)準(zhǔn)、文件格式標(biāo)準(zhǔn)、安全標(biāo)準(zhǔn)軟件開發(fā)規(guī)范和文檔標(biāo)準(zhǔn)

?標(biāo)準(zhǔn)化機(jī)構(gòu)

6.信息化基礎(chǔ)知識

?信息化意識

?全球信息化趨勢、國家信息化戰(zhàn)略、企業(yè)信息化戰(zhàn)略和策略

?有關(guān)的法律、法規(guī)

?遠(yuǎn)程教育、電子商務(wù)、電子政務(wù)等基礎(chǔ)知識

?企業(yè)信息資源管理基礎(chǔ)知識

7.計算機(jī)專業(yè)英語

?掌握計算機(jī)技術(shù)的基本詞匯

?能正確閱讀和理解計算機(jī)領(lǐng)域的英文資料

考試科目2:數(shù)據(jù)庫系統(tǒng)設(shè)計與管理

1.數(shù)據(jù)庫設(shè)計

1.1理解系統(tǒng)需求說明

?了解用戶需求、確定系統(tǒng)范圍

?確定應(yīng)用系統(tǒng)數(shù)據(jù)庫的各種關(guān)系

?現(xiàn)有環(huán)境與新系統(tǒng)環(huán)境的關(guān)系

?新系統(tǒng)中的數(shù)據(jù)項、數(shù)據(jù)字典、數(shù)據(jù)流

1.2 系統(tǒng)開發(fā)的準(zhǔn)備

?選擇開發(fā)方法,準(zhǔn)備開發(fā)環(huán)境,制訂開發(fā)計劃

1.3 設(shè)計系統(tǒng)功能

?選擇系統(tǒng)機(jī)構(gòu),設(shè)計各子系統(tǒng)的功能和接口,設(shè)計安全性策略、需求和實現(xiàn)方法,制定詳細(xì)的工作流和數(shù)據(jù)流

1.4 數(shù)據(jù)庫設(shè)計

1.4.1 設(shè)計數(shù)據(jù)模型

?概念結(jié)構(gòu)設(shè)計(設(shè)計ER模型)

?邏輯結(jié)構(gòu)設(shè)計(轉(zhuǎn)換成DBMS所能接收的數(shù)據(jù)模型)

?評審設(shè)計

1.4.2 物理結(jié)構(gòu)設(shè)計

?設(shè)計方法與內(nèi)容

?存取方法的選擇

?評審設(shè)計與性能預(yù)測

1.4.3 數(shù)據(jù)庫實施與維護(hù)

?數(shù)據(jù)加載與應(yīng)用程序調(diào)試

?數(shù)據(jù)庫試運行

?數(shù)據(jù)庫運行與維護(hù)

1.4.4 數(shù)據(jù)庫的保護(hù)

?數(shù)據(jù)庫的備份與恢復(fù)

?數(shù)據(jù)庫的安全性

?數(shù)據(jù)庫的完整性

?數(shù)據(jù)庫的并發(fā)控制

1.5 編寫外部設(shè)計文檔

?編寫系統(tǒng)說明書(系統(tǒng)配置圖、各子系統(tǒng)關(guān)系圖、系統(tǒng)流程圖,系統(tǒng)功能說明、輸入輸出規(guī)格說明、數(shù)據(jù)規(guī)格說明、用戶手冊框架)

?設(shè)計系統(tǒng)測試要求

1.6 設(shè)計評審

2. 數(shù)據(jù)庫應(yīng)用系統(tǒng)設(shè)計

2.1 設(shè)計數(shù)據(jù)庫應(yīng)用系統(tǒng)結(jié)構(gòu)

?信息系統(tǒng)的架構(gòu)(如Client/Server)與DBMS

?多用戶數(shù)據(jù)庫環(huán)境(文件服務(wù)器體系結(jié)構(gòu)、Client/Server體系結(jié)構(gòu))

?大規(guī)模數(shù)據(jù)庫和并行計算機(jī)體系結(jié)構(gòu)(SMP、MPP)

?中間件角色和相關(guān)工具

?按構(gòu)件分解,確定構(gòu)件功能規(guī)格以及構(gòu)件之間的接口

2.2 設(shè)計輸入輸出

?屏幕界面設(shè)計,設(shè)計輸入輸出檢查方法和檢查信息

?數(shù)據(jù)庫交互與連接(掌握C程序設(shè)計語言,以及Java、Visual Basic、Visual C++、PowerBuilder、Delphi中任一種開發(fā)工具與數(shù)據(jù)庫互連的方法(如何與數(shù)據(jù)庫服務(wù)器溝通))

2.3 設(shè)計物理數(shù)據(jù)

?分析事務(wù)在數(shù)據(jù)庫上運行的頻率和性能要求,確定邏輯數(shù)據(jù)組織方式、存儲介質(zhì),設(shè)計索引結(jié)構(gòu)和處理方式

?將邏輯數(shù)據(jù)結(jié)構(gòu)變換成物理數(shù)據(jù)結(jié)構(gòu),計算容量(空間代價),確定存取方法(時間效率)、系統(tǒng)配置(維護(hù)代價)并進(jìn)行優(yōu)化

2.4 設(shè)計安全體系

?明確安全等級

?數(shù)據(jù)庫的登錄方式

?數(shù)據(jù)庫訪問

?許可(對象許可、命令許可、授權(quán)許可的方法)

2.5 應(yīng)用程序開發(fā)

2.5.1 應(yīng)用程序開發(fā)

?選擇應(yīng)用程序開發(fā)平臺

?系統(tǒng)實施順序

?框架開發(fā)

?基礎(chǔ)小組的程序開發(fā)

?源代碼控制

?版本控制

2.5.2 模塊劃分(原則、方法、標(biāo)準(zhǔn))

2.5.3 編寫程序設(shè)計文檔

?模塊規(guī)格說明書(功能和接口說明、程序處理邏輯的描述、輸入輸出數(shù)據(jù)格式的描述)

?測試要求說明書(測試類型和目標(biāo),測試用例,測試方法)

2.5.4 程序設(shè)計評審

2.6 編寫應(yīng)用系統(tǒng)設(shè)計文檔

?系統(tǒng)配置說明、構(gòu)件劃分圖、構(gòu)件間的接口、構(gòu)件處理說明、屏幕設(shè)計文檔、報表設(shè)計文檔、程序設(shè)計文檔、文件設(shè)計文檔、數(shù)據(jù)庫設(shè)計文檔

2.7 設(shè)計評審

3. 數(shù)據(jù)庫應(yīng)用系統(tǒng)實施

3.1 整個系統(tǒng)的配置與管理

3.2 常用數(shù)據(jù)庫管理系統(tǒng)的應(yīng)用(SQL Server、Oracle、Sybase、DB2、Access或Visual Foxpro)

?創(chuàng)建數(shù)據(jù)庫

?創(chuàng)建表、創(chuàng)建索引、創(chuàng)建視圖、創(chuàng)建約束、創(chuàng)建UDDT(用戶自定義類型)

?創(chuàng)建和管理觸發(fā)器

?建立安全體系

3.3 數(shù)據(jù)庫應(yīng)用系統(tǒng)安裝

?擬定系統(tǒng)安裝計劃(考慮費用、客戶關(guān)系、雇員關(guān)系、后勤關(guān)系和風(fēng)險等因素)

?擬定人力資源使用計劃(組織機(jī)構(gòu)安排的合理性)

?直接安裝(安裝新系統(tǒng)并使系統(tǒng)快速進(jìn)入運行狀態(tài))

?并行安裝(新舊系統(tǒng)并行運行一段時間)

?階段安裝(經(jīng)過一系列的步驟和階段使新系統(tǒng)各部分逐步投入運行)

3.4 數(shù)據(jù)庫應(yīng)用系統(tǒng)測試

?擬定測試目標(biāo)、計劃、方法與步驟

?數(shù)據(jù)加載,準(zhǔn)備測試數(shù)據(jù)

?指導(dǎo)應(yīng)用程序員進(jìn)行模塊測試進(jìn)行驗收

?準(zhǔn)備系統(tǒng)集成測試環(huán)境測試工具

?寫出數(shù)據(jù)庫運行測試報告

3.5 培訓(xùn)與用戶支持

4.數(shù)據(jù)庫系統(tǒng)的運行和管理

4.1 數(shù)據(jù)庫系統(tǒng)的運行計劃

?運行策略的確定

?確定數(shù)據(jù)庫系統(tǒng)報警對象和報警方式

?數(shù)據(jù)庫系統(tǒng)的管理計劃(執(zhí)行,故障/恢復(fù),安全性,完整性,用戶培訓(xùn)和維護(hù))

4.2 數(shù)據(jù)庫系統(tǒng)的運行和維護(hù)

?新舊系統(tǒng)的轉(zhuǎn)換

?收集和分析報警數(shù)據(jù)(執(zhí)行報警、故障報警、安全報警)

?連續(xù)穩(wěn)定的運行

?數(shù)據(jù)庫維護(hù)(數(shù)據(jù)庫重構(gòu)、安全視圖的評價和驗證、文檔維護(hù))

?數(shù)據(jù)庫系統(tǒng)的運行統(tǒng)計(收集、分析、提出改進(jìn)措施)

?關(guān)于運行標(biāo)準(zhǔn)和標(biāo)準(zhǔn)改進(jìn)一致性的建議

?數(shù)據(jù)庫系統(tǒng)的審計

4.3 數(shù)據(jù)庫管理

?數(shù)據(jù)字典和數(shù)據(jù)倉庫的管理

?數(shù)據(jù)完整性維護(hù)和管理(實體完整性、參照完整性)

?數(shù)據(jù)庫物理結(jié)構(gòu)的管理(保證數(shù)據(jù)不推遲訪問)

?數(shù)據(jù)庫空間及碎片管理

?備份和恢復(fù)(順序、日志(審計痕跡)、檢查點)

?死鎖管理(集中式、分布式)

?并發(fā)控制(可串行性、鎖機(jī)制、時間戳、優(yōu)化)

?數(shù)據(jù)安全性管理(加密、安全、訪問控制、視圖、有效性確認(rèn)規(guī)則)

?數(shù)據(jù)庫管理員(DBA)職責(zé)

4.4 性能調(diào)整

?SQL語句的編碼檢驗

?表設(shè)計的評價

?索引的改進(jìn)

?物理分配的改進(jìn)

?設(shè)備增強

?數(shù)據(jù)庫性能優(yōu)化

4.5 用戶支持

?用戶培訓(xùn)

?售后服務(wù)

5. SQL

5.1 數(shù)據(jù)庫語言

?數(shù)據(jù)庫語言的要素

?數(shù)據(jù)庫語言的使用方式(交互式和嵌入式)

5.2 SQL概述

?SQL語句的特征

?SQL語句的基本成分

5.3 數(shù)據(jù)庫定義

?創(chuàng)建數(shù)據(jù)庫(Create Datebase)、創(chuàng)建表(Create Table)

?定義數(shù)據(jù)完整性

?修改表(Alter Table)、刪除表(Drop Table)

?定義索引(Create Index)、刪除索引(Drop Index)

?定義視圖(Create View)、刪除視圖(Drop View)、更新視圖

5.4 數(shù)據(jù)操作

?Select語句的基本機(jī)構(gòu)

?簡單查詢

?SQL中的選擇、投影

?字符串比較,涉及空值的比較

?日期時間,布爾值,輸出排序

?多表查詢

?避免屬性歧義

?SQL中的連接、并、交、差

?SQL中的元組變量

?子查詢

5.5 完整性控制與安全機(jī)制

?主鍵(Primary Key)約束

?外鍵(Foreign Key)約束

?屬性值上的約束(Null、Check、Create Domain)

?全局約束(Create Assertions)

?權(quán)限、授權(quán)(Grant)、銷權(quán)(Revoke)

5.6 創(chuàng)建觸發(fā)器(Create Trigger)

5.7 SQL使用方式

?交互式SQL

?嵌入式SQL

?SQL與宿主語言接口(Declare、共享變量、游標(biāo)、卷游標(biāo))

?動態(tài)SQL

?API

5.8 SQL 標(biāo)準(zhǔn)化

6. 網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)庫

6.1 分布式數(shù)據(jù)庫

6.1.1 分布式數(shù)據(jù)庫的概念

?分布式數(shù)據(jù)庫的特點與目標(biāo)

6.1.2 分布式數(shù)據(jù)庫的體系結(jié)構(gòu)

?分布式數(shù)據(jù)庫的模式結(jié)構(gòu)

?數(shù)據(jù)分布的策略(數(shù)據(jù)分片、分布透明性)

?分布式數(shù)據(jù)庫管理系統(tǒng)

6.1.3 分布式查詢處理和優(yōu)化

6.1.4 分布式事務(wù)管理

?分布式數(shù)據(jù)庫的恢復(fù)(故障、恢復(fù)、2段提交、3段提交)

?分布式數(shù)據(jù)庫的透明性(局部、分裂、復(fù)制、處理、并發(fā)、執(zhí)行)

6.1.5 分布式數(shù)據(jù)庫系統(tǒng)的應(yīng)用

6.2 網(wǎng)絡(luò)環(huán)境下數(shù)據(jù)庫系統(tǒng)的設(shè)計與實施

?數(shù)據(jù)的分布設(shè)計

?負(fù)載均衡設(shè)計

?數(shù)據(jù)庫互連技術(shù)

6.3 面向Web的DBMS技術(shù)

?三層體系結(jié)構(gòu)

?動態(tài)Web網(wǎng)頁

?ASP、JSP、XML的應(yīng)用

7.數(shù)據(jù)庫的安全性

7.1 安全性策略的理解

?數(shù)據(jù)庫視圖的安全性策略

?數(shù)據(jù)的安全級別(最重要的、重要的、注意、選擇)

7.2 數(shù)據(jù)庫安全測量

?用戶訪問控制(采用口令等)

?程序訪問控制(包含在程序中的SQL命令限制)

?表的訪問控制(視圖機(jī)制)

?控制訪問的函數(shù)和操作

?外部存儲數(shù)據(jù)的加密與解密

8. 數(shù)據(jù)庫發(fā)展趨勢與新技術(shù)

8.1 面向?qū)ο髷?shù)據(jù)庫(OODBMS)

8.1.1 OODBMS的特征

8.1.2 面向?qū)ο髷?shù)據(jù)模型

?對象結(jié)構(gòu)、對象類、繼承與多重繼承、對象標(biāo)識、對象包含、對象嵌套

8.1.3 面向?qū)ο髷?shù)據(jù)庫語言

8.1.4 對象關(guān)系數(shù)據(jù)庫系統(tǒng)(ORDBMS)

?嵌套關(guān)系

?復(fù)雜類型

?繼承、引用類型

?與復(fù)雜類型有關(guān)的查詢

?函數(shù)與過程

?面向?qū)ο笈c對象關(guān)系

?ORDBMS應(yīng)用領(lǐng)域

8.2 企業(yè)資源計劃(ERP)和數(shù)據(jù)庫

8.2.1 ERP概述

?基本MRP(制造資源計劃)、閉環(huán)MRP、ERP

?基本原理、發(fā)展趨勢

?ERP設(shè)計的總體思路(一個中心、兩類業(yè)務(wù)、三條干線)

8.2.2 ERP與數(shù)據(jù)庫

?運行數(shù)據(jù)庫與ERP數(shù)據(jù)模型之間的關(guān)系

?運行數(shù)據(jù)庫與ERP數(shù)據(jù)庫之間的關(guān)系

8.2.3 案例分析

8.3 決策支持系統(tǒng)的建立

?決策支持系統(tǒng)的概念

?數(shù)據(jù)倉庫設(shè)計

?數(shù)據(jù)轉(zhuǎn)移技術(shù)

?聯(lián)機(jī)分析處理(OLAP)技術(shù)

?企業(yè)決策支持解決方案

?聯(lián)機(jī)事務(wù)處理(OLTP)

零基礎(chǔ)學(xué)Python應(yīng)該學(xué)習(xí)哪些入門知識

關(guān)于零基礎(chǔ)怎么樣能快速學(xué)好Python的問題,百度提問和解答的都很多,你可以百度下看看。我覺得從個人自學(xué)的角度出發(fā),應(yīng)從以下幾個方面來理解:

1 為什么選擇學(xué)python?

據(jù)統(tǒng)計零基礎(chǔ)或非專業(yè)的人士學(xué)python的比較多,據(jù)HackerRank開發(fā)者調(diào)查報告2018年5月顯示(見圖),Python排名第一,成為最受歡迎編程語言。Python以優(yōu)雅、簡潔著稱,入行門檻低,可以從事Linux運維、Python Web網(wǎng)站工程師、Python自動化測試、數(shù)據(jù)分析、人工智能等職位,薪資待遇呈上漲趨勢。

2 入門python需要那些準(zhǔn)備?

2.1 心態(tài)準(zhǔn)備。編程是一門技術(shù),也可說是一門手藝。如同書法、繪畫、樂器、雕刻等,技藝純熟的背后肯定付出了長時間的反復(fù)練習(xí)。不要相信幾周速成,也不能急于求成。編程的世界浩瀚無邊,所以請保持一顆敬畏的心態(tài)去學(xué)習(xí),認(rèn)真對待寫下的每一行代碼,甚至每一個字符。收拾好自己的心態(tài),向著編程的世界出發(fā)。第一步至關(guān)重要,關(guān)系到初學(xué)者從入門到精通還是從入門到放棄。選一條合適的入門道路,并堅持走下去。

2.2 配置 Python 學(xué)習(xí)環(huán)境。選Python2 還是 Python3?入門時很多人都會糾結(jié)。二者只是程序不兼容,思想上并無大差別,語法變動也并不多。選擇任何一個入手,都沒有大影響。如果你仍然無法抉擇,那請選擇 Python3,畢竟這是未來的趨勢。

編輯器該如何選?同樣,推薦 pycharm 社區(qū)版,配置簡單、功能強大、使用起來省時省心,對初學(xué)者友好,并且完全免費!其他編輯器如:notepad++、sublimeText 3、vim 和 Emacs等不推薦了。

操作環(huán)境?Python 支持現(xiàn)有所有主流操作平臺,不管是 windows 還是 mac 還是 linux,都能很好的運行 Python。并且后兩者都默認(rèn)自帶 Python 環(huán)境。

2.3 選擇自學(xué)的書籍。我推薦的書的內(nèi)容由淺入深,建議按照先后順序閱讀學(xué)習(xí):

2.3.1《Python簡明教程》。這是一本言簡意賅的 Python 入門教程,簡單直白,沒有廢話。就算沒有基礎(chǔ),你也可以像讀小說一樣,花兩天時間就可以讀完。適合入門快速了解語法。

2.3.2 廖雪峰編寫的《Python教程》。廖先生的教程涵蓋了 Python 知識的方方面面,內(nèi)容更加系統(tǒng),有一定深度,有一定基礎(chǔ)之后學(xué)習(xí)會有更多的收獲。

2.4 學(xué)會安裝包。Python中有很多擴(kuò)展包,想要安裝這些包可以采用兩種方法:

2.4.1 使用pip或easy_install。

1)在網(wǎng)上找到的需要的包,下載下來。eg. rsa-3.1.4.tar.gz;

2)解壓縮該文件;

3)命令行工具cd切換到所要安裝的包的目錄,找到setup.py文件,然后輸入python setup.py install

2.4.2 不用pip或easy_install,直接打開cmd,敲pip install rsa。

3 提升階段需要恒心和耐力。

完成入門階段的基礎(chǔ)學(xué)習(xí)之后,常會陷入一個瓶頸期,通過看教程很難進(jìn)一步提高編程水平。這時候,需要的是反復(fù)練習(xí),大量的練習(xí)。可以從書上的例題、作業(yè)題開始寫,再寫小程序片段,然后寫完整的項目。我們收集了一些練習(xí)題和網(wǎng)站。可根據(jù)自己階段,選擇適合的練習(xí)去做。建議最好挑選一兩個系列重點完成,而不是淺嘗輒止。

3.1 多做練習(xí)。推薦網(wǎng)站練習(xí):

crossin編程教室實例:相對于編程教室基礎(chǔ)練習(xí)著重于單一知識點,

編程實例訓(xùn)練對基礎(chǔ)知識的融會貫通;

hackerrank:Python 部分難度循序漸進(jìn),符合學(xué)習(xí)曲線

實驗樓:提升編程水平從做項目開始;

codewar:社區(qū)型編程練習(xí)網(wǎng)站,內(nèi)容由易到難;

leetcode:為編程面試準(zhǔn)備,對初學(xué)者稍難;

牛客網(wǎng):提供 BAT 等大廠筆試題目;

codecombat:提供一邊游戲一邊編程;

projecteuler:純粹的編程練習(xí)網(wǎng)站;

菜鳥教程100例:基于 py2 的基礎(chǔ)練習(xí);

3.2 遇到問題多交流。

3.2.1 利用好搜索引擎。

3.2.2 求助于各大網(wǎng)站。推薦

stackoverflow:這是一個程序員的知識庫;

v2ex:國內(nèi)非常不錯的編程社區(qū),不僅僅是包含程序,也包含了程序員的生活;

segmentfault:一家以編程問答為主的網(wǎng)站;

CSDN、知乎、簡書等

3.2.3 加入相關(guān)的QQ、微信群、百度知道。不懂的可以隨時請教。

HTAP需求不能被HTAP數(shù)據(jù)庫解決

HTAP(Hybrid Transaction and Analytical Process,混合事務(wù)和分析處理)自 2014 年明確提出以后成為了很多數(shù)據(jù)庫廠商努力的方向。其實 HATP 并不新鮮,早年 RDB 剛興起時本來就是用一個數(shù)據(jù)庫同時做事務(wù)和分析,但隨著數(shù)據(jù)規(guī)模不斷變大再直接基于業(yè)務(wù)庫做分析就會影響業(yè)務(wù),這時數(shù)據(jù)倉庫出現(xiàn)了,將業(yè)務(wù)數(shù)據(jù)導(dǎo)入數(shù)據(jù)倉庫來專門應(yīng)對分析需求,同時與業(yè)務(wù)庫隔離,這樣不僅可以更好地服務(wù)分析場景,又不會對業(yè)務(wù)系統(tǒng)產(chǎn)生影響,這是“合久必分”的階段。但是由于數(shù)據(jù)倉庫將 歷史 數(shù)據(jù)與實時數(shù)據(jù)分開了,有時經(jīng)常還會采用異構(gòu)數(shù)據(jù)庫(或大數(shù)據(jù)平臺),如果要分析實時全量數(shù)據(jù)(T+0)就非常困難了,而 T+0 又是很多及時性業(yè)務(wù)必須的,這就造成了“數(shù)據(jù)倉庫之殤”。為了解決這個問題,能不能把 AP 和 TP 在一個數(shù)據(jù)庫內(nèi)同時滿足呢?于是 HTAP 再次登場了,這又到了“分久必合”的階段。

但我們知道,AP 和 TP 兩個場景有顯著不同,前者涉及的數(shù)據(jù)量很大,并且計算邏輯復(fù)雜,但并發(fā)量往往不大,沒有數(shù)據(jù)一致性要求,甚至經(jīng)常為了使用方便可以不滿足范式;后者恰恰相反,數(shù)據(jù)量不大且數(shù)據(jù)處理邏輯簡單,但并發(fā)量很大,有數(shù)據(jù)強一致性要求。從功能上講,TP 數(shù)據(jù)庫本來就能執(zhí)行 SQL,也本來就具有一定的 AP 功能。當(dāng)初之所以要把 TP 和 AP 分開,就是因為巨大數(shù)據(jù)量時,繼續(xù)采用偏向 TP 的技術(shù)就不能高效地處理 AP 的需求(比如 AP 要求高性能需要使用列存,但 TP 為了寫入更新便利需要使用行存),TP 和 AP 的這些巨大差異就決定了這兩個場景不能采用一個技術(shù)體系來同時滿足,而這件事到現(xiàn)在并沒有實質(zhì)性地改變。

即使如此,還是有一些廠商嘗試在同一引擎中同時滿足 TP 和 AP 的需求,實現(xiàn)上有幾種方式。一種是采用多副本的方式,其中某一個副本(可能使用列存)專門用來滿足 AP 的需求;一種是采用行列混合存儲,行存和列存各一份,二者之間自動轉(zhuǎn)換;還有一種方式可以不區(qū)分行列存儲,通過單一存儲引擎支撐 TP 和 AP 場景,常見的是某些內(nèi)存數(shù)據(jù)庫。這類 HTAP 數(shù)據(jù)庫在實現(xiàn)上會優(yōu)先滿足 TP 的需要,在此基礎(chǔ)上再發(fā)展 AP 的功能,因此在滿足 AP 需求時相對一般專用的 AP 產(chǎn)品往往會有很大差距。

另一種 HTAP 數(shù)據(jù)庫的做法是在底層仍然將兩個場景分離,以“模塊化”的方式來設(shè)計存儲,業(yè)務(wù)數(shù)據(jù)產(chǎn)生后就會被復(fù)制兩份(不考慮副本的情況),一份仍然使用行存用于交易,一份復(fù)制使用列存用于分析。相應(yīng)的存儲和計算再借助原本在 TP 和 AP 領(lǐng)域已經(jīng)成熟的技術(shù)進(jìn)行封裝和優(yōu)化,同時設(shè)計統(tǒng)一的對外訪問接口,底層的差異對應(yīng)用層完全透明,這樣就形成了可用的 HTAP 產(chǎn)品。

無論采用哪種方式設(shè)計 HTAP 數(shù)據(jù)庫,在應(yīng)用時都會碰到一個問題,如果原來的業(yè)務(wù)數(shù)據(jù)庫不是(大概率)采用 HTAP 數(shù)據(jù)庫就要涉及數(shù)據(jù)庫遷移,這將面臨巨大的風(fēng)險和成本。不僅要考量數(shù)據(jù)類型差異導(dǎo)致的數(shù)據(jù)結(jié)構(gòu)遷移過程中需要進(jìn)行改造和處理,還會涉及視圖、存儲過程以及復(fù)雜 SQL 的改造等,還有在遷移工程中遇到的種種問題要解決,可謂坑多且深。由此帶來的業(yè)務(wù)影響可能會帶來極大價值損耗。

此外,現(xiàn)代業(yè)務(wù)系統(tǒng)不僅涉及 RDB,還有 MongoDB、InfluxDB 等 NoSQL,以及各種自己封裝的業(yè)務(wù)數(shù)據(jù)源,種類很多五花八門。這些數(shù)據(jù)源要遷移到新數(shù)據(jù)庫就沒那么簡單了,像 MongoDB 數(shù)據(jù)轉(zhuǎn)存到 RDB 會發(fā)現(xiàn)實現(xiàn)很困難。MongoDB 中的很多數(shù)據(jù)類型和集合之間的關(guān)系在 RDB 中并不存在,比如嵌入式的數(shù)據(jù)結(jié)構(gòu)、數(shù)組和哈希等集合類型、多對多關(guān)系的實現(xiàn)。這些問題并不是簡單通過數(shù)據(jù)遷移就能解決的,需要在遷移之前先對部分?jǐn)?shù)據(jù)結(jié)構(gòu)進(jìn)行重構(gòu),這需要事先投入相當(dāng)多的人工和時間成本去梳理業(yè)務(wù)并設(shè)計目標(biāo)數(shù)據(jù)組織方式。即使最后花費很大代價把業(yè)務(wù)數(shù)據(jù)源遷移到 HTAP 上,原來那些多樣性數(shù)據(jù)源自身的優(yōu)勢卻又喪失了,得失之間有時甚至很難權(quán)衡是否值得。

我們知道,數(shù)據(jù)計算性能和數(shù)據(jù)組織密不可分,在 AP 類場景中通常要使用列存來發(fā)揮計算優(yōu)勢,但只有列存是遠(yuǎn)遠(yuǎn)不夠的,有些復(fù)雜計算需要針對計算特點專門設(shè)計數(shù)據(jù)存儲形式(比如有序存儲、數(shù)據(jù)類型轉(zhuǎn)換、預(yù)計算等)。而這些對性能要求高的復(fù)雜計算在 AP 類場景中并不少見,但無論采用何種方式的 HTAP,簡單“自動化”地行存轉(zhuǎn)列存并不能實現(xiàn)相對“個性化”的效果,性能往往無法達(dá)標(biāo)。這個道理也很簡單,天下沒有什么都好的事兒,你想融合就必須容忍在某一或某些方面的不足。

遷移風(fēng)險大、成本高、有損失、性能還可能不達(dá)標(biāo),考慮到這些問題,我們不禁會問:HTAP 數(shù)據(jù)庫這個技術(shù)路線對嗎?

說到這里我們再回頭看一下 HTAP 的目的,為什么要用 HTAP?

其實就是為了進(jìn)行全量數(shù)據(jù)實時查詢統(tǒng)計,也就是 T+0!

如果數(shù)據(jù)倉庫等相關(guān)技術(shù)能搞定這個問題,那自然也就不需要 HTAP 了。不過很遺憾,數(shù)據(jù)倉庫仍然延用了關(guān)系數(shù)據(jù)庫的封閉體系,數(shù)據(jù)要先入庫才能計算,而且入庫又有較強約束。這些導(dǎo)致數(shù)據(jù)倉庫無法很好實現(xiàn)跨數(shù)據(jù)源尤其是異構(gòu)和非關(guān)系型數(shù)據(jù)源的混合計算,很難實現(xiàn) T+0 的目標(biāo)。

但集算器 SPL 可以。

集算器 SPL(Structured Process Language),一個專門面向結(jié)構(gòu)化數(shù)據(jù)計算的 開源 計算引擎和程序語言。除了提供了豐富的計算類庫使其擁有不依賴數(shù)據(jù)庫的獨立計算能力外,SPL 可以對接多種數(shù)據(jù)源并完成多源混合計算,從而輕松完成跨數(shù)據(jù)源的 T+0 查詢。

SPL 通過與現(xiàn)有系統(tǒng)融合的方式實現(xiàn) HTAP,這樣原有系統(tǒng)的改動很小,TP 部分幾乎不動,甚至原有的 AP 數(shù)據(jù)源也可以繼續(xù)工作,逐步使用 SPL 接管 AP 業(yè)務(wù)。SPL 部分或全部接管 AP 業(yè)務(wù)后, 歷史 冷數(shù)據(jù)使用 SPL 高性能文件存儲,原來針對業(yè)務(wù)庫到數(shù)據(jù)倉庫的 ETL 過程可以直接移植到 SPL 上。冷數(shù)據(jù)量大且不再變化使用 SPL 高性能文件存儲可以獲得更高地計算性能;熱數(shù)據(jù)量小仍然存放在原有 TP 數(shù)據(jù)源中,SPL 直接讀取計算,由于熱數(shù)據(jù)量并不大,直接基于 TP 數(shù)據(jù)源查詢也不會對其造成太大影響,訪問時間也不會太長。再利用 SPL 的冷熱數(shù)據(jù)混合計算能力,就可以獲得針對全量數(shù)據(jù)的 T+0 實時查詢。我們只要定期將變冷的數(shù)據(jù)固化到 SPL 的高性能存儲中,原數(shù)據(jù)源只需要保持少量近期新產(chǎn)生的熱數(shù)據(jù)即可。這樣不僅實現(xiàn)了 HTAP,而且還是高性能的 HTAP,且對應(yīng)用架構(gòu)沖擊很小。

現(xiàn)代信息系統(tǒng)中建設(shè)數(shù)據(jù)倉庫等專門服務(wù)分析場景已然十分常見,加之?dāng)?shù)據(jù)源種類繁多,將這些數(shù)據(jù)都遷移到一處代價太大了,對于這點前文我們已經(jīng)分析過。如果能在現(xiàn)有架構(gòu)的基礎(chǔ)上增加跨數(shù)據(jù)源的實時混合計算能力,就相當(dāng)于插上了 HTAP 的翅膀,在不改變現(xiàn)有架構(gòu)的情況下快速實現(xiàn) HTAP 的需求,而這正是 SPL 的強項。

SPL 支持多種數(shù)據(jù)源,RDB、NoSQL 以及 RESTful 等都可以直接使用,還可以解析 JSON/XML 等類型數(shù)據(jù),可以對接 Elasticsearch、Kafka 等數(shù)據(jù)源,此外傳統(tǒng) / 新興數(shù)據(jù)倉庫、大數(shù)據(jù)平臺等也可以直接取數(shù)計算。

在對接的同時可以針對任意多種數(shù)據(jù)源進(jìn)行混合計算,這樣實時數(shù)據(jù)從生產(chǎn)庫中讀與取自 歷史 庫 / 數(shù)據(jù)倉庫 / 大數(shù)據(jù)平臺的冷數(shù)據(jù)混合計算就可以實現(xiàn) T+0 全量實時數(shù)據(jù)查詢。這樣原有應(yīng)用架構(gòu)幾乎不用變動(尤其是生產(chǎn)庫)就可以獲得 HTAP(架構(gòu)層面)期望的效果,成本極低。

使用 SPL 在現(xiàn)有架構(gòu)上輸出 HTAP 能力還有一個好處是可以充分保留原有數(shù)據(jù)源的優(yōu)勢。NoSQL 仍然可以繼續(xù)使用而不必強行將結(jié)構(gòu)拉成 RDB 的形式,自己封裝的數(shù)據(jù)訪問與交互接口也不必費心去遷就新數(shù)據(jù)庫,原來的優(yōu)勢與個性化仍然保持,風(fēng)險很低的同時價值幾乎沒有損耗。

在分析側(cè)也一樣,基于 SPL 也可以繼續(xù)使用原本建設(shè)好的分析平臺。但如前所述,分析場景面臨的數(shù)據(jù)量大且計算邏輯復(fù)雜,尤其需要高性能。SPL 還提供了高性能計算機(jī)制,可以全面接管原來分析側(cè)(AP)的業(yè)務(wù)實現(xiàn)高性能數(shù)據(jù)計算。

我們知道,高性能計算涉及兩方面,一個是數(shù)據(jù)組織方式即數(shù)據(jù)存儲,另一個是算法,這二者密不可分,很多高性能算法需要將數(shù)據(jù)組織成相應(yīng)格式(如有序)才能發(fā)揮作用。SPL 提供了自有的高性能存儲機(jī)制,直接采用文件系統(tǒng)。將數(shù)據(jù)存儲特定格式的文件中,不僅可以獲得更高的 IO 存取效率以及文件系統(tǒng)靈活的管理能力,還可以充分利用自有格式的列存、有序、壓縮、并行分段等數(shù)據(jù)存儲優(yōu)勢,從而高效地發(fā)揮高性能算法效力。

而在算法方面,SPL 提供了十分豐富的高性能算法庫。遍歷復(fù)用、有序歸并、外鍵預(yù)關(guān)聯(lián)、標(biāo)簽位維度、并行計算等,都已經(jīng)封裝好,可以直接使用,配合 SPL 的存儲機(jī)制就能獲得高性能。而且這其中有很多算法都是 SPL 獨創(chuàng)的,在業(yè)內(nèi)也是首次提出。

如果簡單地將 TP 中的行存轉(zhuǎn)換成 SPL 中的列存,工作量也非常低。但為了獲得高性能,常常還需要精心設(shè)計存儲方式,這時,將會有一定量的 ETL 動作,但這個工作與原來從業(yè)務(wù)系統(tǒng) ETL 數(shù)據(jù)到數(shù)據(jù)倉庫基本是一樣的,并不會更復(fù)雜,而且這個工作對于高性能是少不了的。和一般 HTAP 數(shù)據(jù)庫很難實施經(jīng)過有效設(shè)計的存儲相比,SPL 將冷熱數(shù)據(jù)分離后可以從容不迫地像以前 TP/AP 分離時那樣實施更高效的存儲組織,這樣更能將 TP 和 AP 雙邊的性能發(fā)揮到極致。相對大幅的性能提升,數(shù)據(jù)組織的工作往往是值得的。

在實戰(zhàn)中,使用 SPL 存儲和算法提升數(shù)倍數(shù)十倍性能的案例很多。比如在某保險公司車險保單跑批的案例( 開源 SPL 優(yōu)化保險公司跑批優(yōu)從 2 小時到 17 分鐘 )中,使用 SPL 將計算時間從 2 小時縮短到 17 分鐘。這里使用 SPL 接管存儲后再利用 SPL 特有的遍歷復(fù)用技術(shù)(在對大數(shù)據(jù)的一次遍歷過程中實現(xiàn)多種運算)有效地減少外了存訪問量,同時將涉及對一個大表進(jìn)行三次關(guān)聯(lián)和匯總的運算只需要遍歷一次(SQL 要將大表遍歷三次),并在關(guān)聯(lián)運算上采用了不同的算法,因此獲得了巨大的性能提升。

還有在 開源 SPL 將銀行手機(jī)賬戶查詢的預(yù)先關(guān)聯(lián)變成實時關(guān)聯(lián) 的案例中,使用 SPL 將原本只能預(yù)關(guān)聯(lián)的手機(jī)賬戶查詢變成實時關(guān)聯(lián),同時服務(wù)器數(shù)量從 6 臺降為 1 臺。這里充分利用了 SPL 的有序存儲機(jī)制,一次性讀取整個賬戶數(shù)據(jù)時可以有效減少硬盤時間(物理存儲連續(xù)),再借助區(qū)分維表和事實表的外鍵實時關(guān)聯(lián)技術(shù)使用單機(jī)就能完成實時關(guān)聯(lián)查詢,性能提升明顯,硬件需求也降低了許多。

基于 SPL 的 HTAP,并不止于 T+0 和高性能。

數(shù)據(jù)計算(主要指 OLAP 場景)一向有兩個難點,跑得慢(性能)和寫得簡單(開發(fā)效率)。前者我們說過了,后者使用 SPL 還可以獲得很大改善。

現(xiàn)在我們處理數(shù)據(jù)還主要基于 SQL(其他高級語言太麻煩),但 SQL 仍然有很多不好描述的運算,這個原因主要是 SQL 的理論限制,這里我們不多說,感興趣的小伙伴可以閱讀這篇文章: 寫著簡單跑得又快的數(shù)據(jù)庫語言 SPL

鑒于 SQL 在復(fù)雜計算方面的描述能力(開發(fā)效率)太差,SPL 并沒有沿用 SQL 體系,而是基于新的理論重新設(shè)計了一套敏捷計算語法,基于這個語法再實施計算尤其復(fù)雜計算會更有優(yōu)勢,寫法也更簡單。

我們可以通過電商系統(tǒng)中常見的漏斗運算來感受一下 SPL 的簡潔性。

SQL(oracle)實現(xiàn):

SPL 實現(xiàn):

oracle 的 SQL 寫出來要三十多行,理解起來有相當(dāng)?shù)碾y度。而且這段代碼和漏斗的步驟數(shù)量相關(guān),每增加一步數(shù)就要再增加一段子查詢。這種 SQL,寫出來就已經(jīng)不易,性能優(yōu)化更是無從談起。

相比之下,SPL 就簡單得多,處理任意步驟數(shù)都是這段代碼。

好了,說到這里各位看官應(yīng)該了解了,SPL 并不是一個 HTAP 數(shù)據(jù)庫,而是提供了一種新思路來滿足 HTAP 的需要。HTAP 數(shù)據(jù)庫很熱,廠商的宣傳口號很容易讓我們陷入只能使用一種數(shù)據(jù)庫來解決 HTAP 問題的藩籬而不自知。但只要我們再多想一點就會發(fā)現(xiàn),HTAP 是一種合理的業(yè)務(wù)需求,滿足它或許并不需要一種新數(shù)據(jù)庫,而是能夠解決問題的新技術(shù)和架構(gòu),而 SPL 提供了這種可能。

SPL下載地址:

SPL開源地址:

當(dāng)前標(biāo)題:rdbnosql筆試題的簡單介紹
文章來源:http://chinadenli.net/article7/dsegsij.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)建站公司用戶體驗網(wǎng)站維護(hù)商城網(wǎng)站網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司