① mpp資料庫跟oracle的區別
先這要看下:
② GBase 8a MPP資料庫如何通過JDBC實現連接級的負載均衡
在使用JDBC實現連接GBase8aMPP資料庫時,由於GBase8aMPP資料庫是分布式資料庫,那麼在通過JDBC實現連接高可用的情況下,還希望能夠實現連接級別的負載均衡,需要如何實現呢?這就需要使用到GBase8aMPP資料庫JDBC驅動自帶的負載均衡功能。
如果我們希望把資料庫連接請求平均分布到各個節點的上話,我們可以使用JDBC 高可用負載均衡功能。
假設有如下場景,部署有一個GBase 集群,三個節點IP如下:
192.168.1.1;192.168.1.2;192.168.1.3;
String dbUrl =
「jdbc:gbase://192.168.1.1:5258/test?user=gbase&password=gbase20110531&failoverEnable=true&hostList=192.168.1.2,192.168.1.3&gclusterId=gcl1」;
failoverEnable:是否開啟高可用。
hostList:集群節點的IP列表,以逗號分隔,hostList中不需要包含url中的主IP。
gclusterId:不同的gclusterId會創建不同的列表,用於區分被連接的集群,要求必須以a-z任意字元開頭的可以包含a-z、0-9所有字元長度為最大為20的字元串。
高可用負載均衡功能是將url中的IP和hostList中的IP放入一個列表中,當應用獲取連接的時候,JDBC會從列表表中順序獲取IP創建連接,每個IP獲取一個連接,從而實現連接的負載均衡,同時,當列表中的IP不可連接時,JDBC會順序獲取列表中的下一個IP,獲取連接,如果無可用連接時,將拋出異常。也就是說高可用負載均衡功能既實現了連接負載均衡功能,也實現了高可用功能。
③ 2019數據架構選型必讀:1月資料庫產品技術解析
本期目錄
DB-Engines資料庫排行榜
新聞快訊
一、RDBMS家族
二、Nosql家族
三、NewSQL家族
四、時間序列
五、大數據生態圈
六、國產資料庫概覽
七、雲資料庫
八、推出dbaplus Newsletter的想法
九、感謝名單
為方便閱讀、重點呈現,本期Newsletter(2019年1月)將對各個板塊的內容進行精簡。需要閱讀全文的同學可點擊文末 【閱讀原文】 或登錄https://pan..com/s/13BgipbaHeMfvm0YPtiYviA
DB-Engines資料庫排行榜
以下取自2019年1月的數據,具體信息可以參考http://db-engines.com/en/ranking/,數據僅供參考。
DB-Engines排名的數據依據5個不同的因素:
新聞快訊
1、2018年9月24日,微軟公布了SQL Server2019預覽版,SQL Server 2019將結合Spark創建統一數據平台。
2、2018年10月5日,ElasticSearch在美國紐約證券交易所上市。
3、亞馬遜放棄甲骨文資料庫軟體,導致最大倉庫之一在黃金時段宕機。受此消息影響,亞馬遜盤前股價小幅跳水,跌超2%。
4、2018年10月31日,Percona發布了Percona Server 8.0 RC版本,發布對MongoDB 4.0的支持,發布對XtraBackup測試第二個版本。
5、2018年10月31日,Gartner陸續發布了2018年的資料庫系列報告,包括《資料庫魔力象限》、《資料庫核心能力》以及《資料庫推薦報告》。
今年的總上榜資料庫產品達到了5家,分別來自:阿里雲,華為,巨杉資料庫,騰訊雲,星環 科技 。其中阿里雲和巨杉資料庫已經連續兩年入選。
6、2018年11月初,Neo4j宣布完成E輪8000萬美元融資。11月15日,Neo4j宣布企業版徹底閉源:
7、2019年1月8日,阿里巴巴以1.033億美元(9000萬歐元)的價格收購了Apache Flink商業公司DataArtisans。
8、2019年1月11日早間消息,亞馬遜宣布推出雲資料庫軟體,亞馬遜和MongoDB將會直接競爭。
RDBMS家族
Oracle 發布18.3版本
2018年7月,Oracle Database 18.3通用版開始提供下載。我們可以將Oracle Database 18c視為採用之前發布模式的Oracle Database 12c第2版的第一個補丁集。未來,客戶將不再需要等待多年才能用上最新版Oracle資料庫,而是每年都可以期待新資料庫特性和增強。Database 19c將於2019年Q1率先在Oracle cloud上發布雲版本。
Oracle Database 18c及19c部分關鍵功能:
1、性能
2、多租戶,大量功能增強及改進,大幅節省成本和提高敏捷性
3、高可用
4、數據倉庫和大數據
MySQL發布8.0.13版本
1、賬戶管理
經過配置,修改密碼時,必須帶上原密碼。在之前的版本,用戶登錄之後,就可以修改自己的密碼。這種方式存在一定安全風險。比如用戶登錄上資料庫後,中途離開一段時間,那麼非法用戶可能會修改密碼。由參數password_require_current控制。
2、配置
Innodb表必須有主鍵。在用戶沒有指定主鍵時,系統會生成一個默認的主鍵。但是在主從復制的場景下,默認的主鍵,會對叢庫應用速度帶來致命的影響。如果設置sql_require_primary_key,那麼資料庫會強制用戶在創建表、修改表時,加上主鍵。
3、欄位默認值
BLOB、TEXT、GEOMETRY和JSON欄位可以指定默認值了。
4、優化器
1)Skip Scan
非前綴索引也可以用了。
之前的版本,任何沒有帶上f1欄位的查詢,都沒法使用索引。在新的版本中,它可以忽略前面的欄位,讓這個查詢使用到索引。其實現原理就是把(f1 = 1 AND f2 > 40) 和(f1 = 2 AND f2 > 40)的查詢結果合並。
2)函數索引
之前版本只能基於某個列或者多個列加索引,但是不允許在上面做計算,如今這個限制消除了。
5、SQL語法
GROUP BY ASC和GROUP BY DESC語法已經被廢棄,要想達到類似的效果,請使用GROUP BY ORDER BY ASC和GROUP BY ORDER BY DESC。
6、功能變化
1)設置用戶變數,請使用SET語句
如下類型語句將要被廢棄SELECT @var, @var:=@var+1。
2)新增innodb_fsync_threshold
該變數是控制文件刷新到磁碟的速率,防止磁碟在短時間內飽和。
3)新增會話級臨時表空間
在以往的版本中,當執行SQL時,產生的臨時表都在全局表空間ibtmp1中,及時執行結束,臨時表被釋放,空間不會被回收。新版本中,會為session從臨時表空間池中分配一個臨時表空間,當連接斷開時,臨時表空間的磁碟空間被回收。
4)在線切換Group Replication的狀態
5)新增了group_replication_member_expel_timeout
之前,如果某個節點被懷疑有問題,在5秒檢測期結束之後,那麼就直接被驅逐出這個集群。即使該節點恢復正常時,也不會再被加入集群。那麼,瞬時的故障,會把某些節點驅逐出集群。
group_replication_member_expel_timeout讓管理員能更好的依據自身的場景,做出最合適的配置(建議配置時間小於一個小時)。
MariaDB 10.3版本功能展示
1、MariaDB 10.3支持update多表ORDER BY and LIMIT
1)update連表更新,limit語句
update t1 join t2 on t1.id=t2.id set t1.name='hechunyang' limit 3;
MySQL 8.0直接報錯
MariaDB 10.3更新成功
2)update連表更新,ORDER BY and LIMIT語句
update t1 join t2 on t1.id=t2.id set t1.name='HEchunyang' order by t1.id DESC limit 3;
MySQL 8.0直接報錯
MariaDB 10.3更新成功
參考:
https://jira.mariadb.org/browse/MDEV-13911
2、MariaDB10.3增補AliSQL補丁——安全執行Online DDL
Online DDL從名字上看很容易誤導新手,以為不論什麼情況,修改表結構都不會鎖表,理想很豐滿,現實很骨感,注意這個坑!
有以下兩種情況執行DDL操作會鎖表的,Waiting for table metadata lock(元數據表鎖):
針對第二種情況,MariaDB10.3增補AliSQL補丁-DDL FAST FAIL,讓其DDL操作快速失敗。
例:
如果線上有某個慢SQL對該表進行操作,可以使用WAIT n(以秒為單位設置等待)或NOWAIT在語句中顯式設置鎖等待超時,在這種情況下,如果無法獲取鎖,語句將立即失敗。 WAIT 0相當於NOWAIT。
參考:
https://jira.mariadb.org/browse/MDEV-11388
3、MariaDB Window Functions窗口函數分組取TOP N記錄
窗口函數在MariaDB10.2版本里實現,其簡化了復雜SQL的撰寫,提高了可讀性。
參考:
https://mariadb.com/kb/en/library/window-functions-overview/
Percona Server發布8.0 GA版本
2018年12月21日,Percona發布了Percona Server 8.0 GA版本。
在支持MySQL8.0社區的基礎版上,Percona Server for MySQL 8.0版本中帶來了許多新功能:
1、安全性和合規性
2、性能和可擴展性
3、可觀察性和可用性
Percona Server for MySQL 8.0中將要被廢用功能:
Percona Server for MySQL 8.0中刪除的功能:
RocksDB發布V5.17.2版本
2018年10月24日,RocksDB發布V5.17.2版本。
RocksDB是Facebook在LevelDB基礎上用C++寫的高效內嵌式K/V存儲引擎。相比LevelDB,RocksDB提供了Column-Family,TTL,Transaction,Merge等方面的支持。目前MyRocks,TiKV等底層的存儲都是基於RocksDB來構建。
PostgreSQL發布11版本
2018年10月18日,PostgreSQL 11發布。
1、PostgreSQL 11的重大增強
2、PostgreSQL 插件動態
1)分布式插件citus發布 8.1
citus是PostgreSQL的一款sharding插件,目前國內蘇寧、鐵總、探探有較大量使用案例。
https://github.com/citusdata/citus
2)地理信息插件postgis發布2.5.1
PostGIS是專業的時空資料庫插件,在測繪、航天、氣象、地震、國土資源、地圖等時空專業領域應用廣泛。同時在互聯網行業也得到了對GIS有性能、功能深度要求的客戶青睞,比如共享出行、外賣等客戶。
http://postgis.net/
3)時序插件timescale發布1.1.1
timescale是PostgreSQL的一款時序資料庫插件,在IoT行業中有非常好的應用。github star數目前有5000多,是一個非常火爆的插件。
https://github.com/timescale/timescaledb
4)流計算插件 pipelinedb 正式插件化
Pipelinedb是PostgreSQL的一款流計算插件,使用這個創建可以對高速寫入的數據進行實時根據定義的聚合規則進行聚合(支持概率計算),實時根據定義的規則觸發事件(支持事件處理函數的自定義)。可用於IoT,監控,FEED實時計算等場景。
https://github.com/pipelinedb/pipelinedb
3、PostgreSQL衍生開源產品動態
1)agensgraph發布 2.0.0版本
agensgraph是兼容PostgreSQL、opencypher的專業圖資料庫,適合圖式關系的管理。
https://github.com/bitnine-oss/agensgraph
2)gpdb發布5.15
gpdb是兼容PostgreSQL的mpp資料庫,適合OLAP場景。近兩年,gpdb一直在追趕PostgreSQL的社區版本,預計很快會追上10的PostgreSQL,在TP方面的性能也會得到顯著提升。
https://github.com/greenplum-db/gpdb
3)antdb發布3.2
antdb是以Postgres-XC為基礎開發的一款PostgreSQL sharding資料庫,亞信主導開發,開源,目前主要服務於亞信自有客戶。
https://github.com/ADBSQL/AntDB
4)遷移工具MTK發布52版本
MTK是EDB提供的可以將Oracle、PostgreSQL、MySQL、MSSQL、Sybase資料庫遷移到PostgreSQL, PPAS的產品,遷移速度可以達到100萬行/s以上。
https://github.com/digoal/blog/blob/master/201812/20181226_01.md
DB2發布 11.1.4.4版本
DB2最新發布Mod Pack 4 and Fix Pack 4,包含以下幾方面的改動及增強:
1、性能
2、高可用
3、管理視圖
4、應用開發方面
5、聯邦功能
6、pureScale
NoSQL家族
Redis發布5.0.3版本
MongoDB升級更新MongoDB Mobile和MongoDB Stitch
2018年11月21日,MongoDB升級更新MongoDB Mobile和MongoDB Stitch,助力開發人員提升工作效率。
MongoDB 公司日前發布了多項新產品功能,旨在更好地幫助開發人員在世界各地管理數據。通過利用存儲在移動設備和後台資料庫的數據之間的實時、自動的同步特性,MongoDB Mobile通用版本助力開發人員構建更快捷、反應更迅速的應用程序。此前,這只能通過在移動應用內部安裝一個可供選擇或限定功能的資料庫來實現。
MongoDB Mobile在為客戶提供隨處運行的自由度方面更進了一步。用戶在iOS和安卓終端設備上可擁有MongoDB所有功能,將網路邊界擴展到其物聯網資產范疇。應用系統還可以使用MongoDB Stitch的軟體開發包訪問移動客戶端或後台數據,幫助開發人員通過他們希望的任意方式查詢移動終端數據和物聯網數據,包括本地讀寫、本地JSON存儲、索引和聚合。通過Stitch移動同步功能(現可提供beta版),用戶可以自動對保存在本地的數據以及後台資料庫的數據進行同步。
本期新秀:Cassandra發布3.11.3版本
2018年8月11日,Cassandra發布正式版3.11.3。
Apache Cassandra是一款開源分布式NoSQL資料庫系統,使用了基於Google BigTable的數據模型,與面向行(row)的傳統關系型資料庫或鍵值存儲key-value資料庫不同,Cassandra使用的是寬列存儲模型(Wide Column Stores)。與BigTable和其模仿者HBase不同,數據並不存儲在分布式文件系統如GFS或HDFS中,而是直接存於本地。
Cassandra的系統架構與Amazon DynamoDB類似,是基於一致性哈希的完全P2P架構,每行數據通過哈希來決定應該存在哪個或哪些節點中。集群沒有master的概念,所有節點都是同樣的角色,徹底避免了整個系統的單點問題導致的不穩定性,集群間的狀態同步通過Gossip協議來進行P2P的通信。
3.11.3版本的一些bug fix和改進:
NewSQL家族
TiDB 發布2.1.2版本
2018 年 12 月 22 日,TiDB 發布 2.1.2 版,TiDB-Ansible 相應發布 2.1.2 版本。該版本在 2.1.1 版的基礎上,對系統兼容性、穩定性做出了改進。
TiDB 是一款定位於在線事務處理/在線分析處理( HTAP: Hybrid Transactional/Analytical Processing)的融合型資料庫產品。除了底層的 RocksDB 存儲引擎之外,分布式SQL層、分布式KV存儲引擎(TiKV)完全自主設計和研發。
TiDB 完全開源,兼容MySQL協議和語法,可以簡單理解為一個可以無限水平擴展的MySQL,並且提供分布式事務、跨節點 JOIN、吞吐和存儲容量水平擴展、故障自恢復、高可用等優異的特性;對業務沒有任何侵入性,簡化開發,利於維護和平滑遷移。
TiDB:
PD:
TiKV:
Tools:
1)TiDB-Lightning
2)TiDB-Binlog
EsgynDB發布R2.5版本
2018年12月22日,EsgynDB R2.5版本正式發布。
作為企業級產品,EsgynDB 2.5向前邁進了一大步,它擁有以下功能和改進:
CockroachDB發布2.1版本
2018年10月30日,CockroachDB正式發布2.1版本,其新增特性如下:
新增企業級特性:
新增SQL特性:
新增內核特性:
Admin UI增強:
時間序列
本期新秀:TimescaleDB發布1.0版本
10月底,TimescaleDB 1.0宣布正式推出,官方表示該版本已可用於生產環境,支持完整SQL和擴展。
TimescaleDB是基於PostgreSQL資料庫開發的一款時序資料庫,以插件化的形式打包提供,隨著PostgreSQL的版本升級而升級,不會因為另立分支帶來麻煩。
TimescaleDB架構:
數據自動按時間和空間分片(chunk)
更新亮點:
https://github.com/timescale/timescaledb/releases/tag/1.0.0
大數據生態圈
Hadoop發布2.9.2版本
2018年11月中旬,Hadoop在2.9分支上發布了新的2.9.2版本,該版本進行了204個大大小小的變更,主要變更如下:
Greenplum 發布5.15版本
Greenplum最新的5.15版本中發布了流式數據載入工具。
該版本中的Greenplum Streem Server組件已經集成了Kafka流式載入功能,並通過了Confluent官方的集成認證,其支持的主要功能如下:
國產資料庫概覽
K-DB發布資料庫一體機版
2018年11月7日,K-DB發布了資料庫一體機版。該版本更新情況如下:
OceanBase遷移服務發布1.0版本
1月4日,OceanBase 正式發布OMS遷移服務1.0版本。
以下內容包含 OceanBase 遷移服務的重要特性和功能:
SequoiaDB發布3.0.1新版本
1、架構
1)完整計算存儲分離架構,兼容MySQL協議、語法
計算存儲分離體系以松耦合的方式將計算與存儲層分別部署,通過標准介面或插件對各個模塊和組件進行無縫替換,在計算層與存儲層均可實現自由的彈性伸縮。
SequoiaDB巨杉資料庫「計算-存儲分離」架構詳細示意
用戶可以根據自身業務特徵選擇面向交易的SQL解析器(例如MySQL或PGSQL)或面向統計分析的執行引擎(例如SparkSQL)。眾所周知,使用不同的SQL優化與執行方式,資料庫的訪問性能可能會存在上千上萬倍的差距。計算存儲分離的核心思想便是在數據存儲層面進行一體化存儲,在計算層面則利用每種執行引擎的特點針對不同業務場景進行選擇和優化,用戶可以在存儲層進行邏輯與物理的隔離,將面向高頻交易的前端業務與面向高吞吐量的統計分析使用不同的硬體進行存儲,確保在多類型數據訪問時互不幹擾,以真正達到生產環境可用的多租戶與HTAP能力。
2、其他更新信息
1)介面變更:
2)主要特性:
雲資料庫
本期新秀:騰訊發布資料庫CynosDB,開啟公測
1、News
1)騰訊雲資料庫MySQL2018年重大更新:
2)騰訊雲資料庫MongoDB2018年重大更新:
3)騰訊雲資料庫Redis/CKV+2018年重大更新:
4)騰訊雲資料庫CTSDB2018年重大更新:
2、Redis 4.0集群版商業化上線
2018年10月,騰訊雲資料庫Redis 4.0集群版完成邀測、公測、商業化三個迭代,在廣州、上海、北京正式全量商業化上線。
產品特性:
使用場景:
官網文檔:
https://cloud.tencent.com/document/proct/239/18336
3、騰訊自研資料庫CynosDB發布,開啟公測
2018年11月22日,騰訊雲召開新一代自研資料庫CynosDB發布會,業界第一款全面兼容市面上兩大最主流的開源資料庫MySQL和PostgreSQL的高性能企業級分布式雲資料庫。
本期新秀:京東雲DRDS發布1.0版本
12月24日,京東雲分布式關系型資料庫DRDS正式發布1.0版本。
DRDS是京東雲精心自研的資料庫中間件產品,獲得了2018年 」可信雲技術創新獎」。DRDS可實現海量數據下的自動分庫分表,具有高性能,分布式,彈性升級,兼容MySQL等優點,適用於高並發、大規模數據的在線交易, 歷史 數據查詢,自動數據分片等業務場景,歷經多次618,雙十一的考驗,已經在京東集團內大規模使用。
京東雲DRDS產品有以下主要特性
1)自動分庫分表
通過簡單的定義即可自動實現分庫分表,將數據實際存放在多個MySQL實例的資料庫中,但呈現給應用程序的依舊是一張表,對業務透明,應用程序幾乎無需改動,實現了對資料庫存儲和處理能力的水平擴展。
2)分布式架構
基於分布式架構的集群方案,多個對等節點同時對外提供服務,不但可有效規避服務的單點故障,而且更加容易擴展。
3)超強性能
具有極高的處理能力,雙節點即可支持數萬QPS,滿足用戶超大規模處理能力的需求。
4)兼容MySQL
兼容絕大部分MySQL語法,包括MySQL語法、數據類型、索引、常用函數、排序、關聯等DDL,DML語句,使用成本低。
參考鏈接:
https://www.jdcloud.com/cn/procts/drds
RadonDB發布1.0.3版本
2018年12月26日,MyNewSQL領域的RadonDB雲資料庫發布1.0.3版本。
推出dbaplus Newsletter的想法
dbaplus Newsletter旨在向廣大技術愛好者提供資料庫行業的最新技術發展趨勢,為社區的技術發展提供一個統一的發聲平台。為此,我們策劃了RDBMS、NoSQL、NewSQL、時間序列、大數據生態圈、國產資料庫、雲資料庫等幾個版塊。
我們不以商業宣傳為目的,不接受任何商業廣告宣傳,嚴格審查信息源的可信度和准確性,力爭為大家提供一個純凈的技術學習環境,歡迎大家監督指正。
至於Newsletter發布的周期,目前計劃是每三個月左右會做一次跟進, 下期計劃時間是2019年4月14日~4月25日, 如果有相關的信息提供請發送至郵箱:[email protected]
感謝名單
最後要感謝那些提供寶貴信息和建議的專家朋友,排名不分先後。
往期回顧:
↓↓別忘了點這里下載 2019年1月 完整版Newsletter 哦~
④ MPP 和 NoSQL 有什麼區別 架構上, 應用上
MPP是一種進行系統擴展的方式,它由多個SMP伺服器通過一定的節點互聯網路進行連接,協同工作,完成相同的任務,從用戶的角度來看是一個伺服器系統。每一個節點只能訪問自己本地資源(內存,存儲等),是一種完全無共享結構(Share Nothing)結構。
而NoSql=Not Only Sql。泛指的是非關系型資料庫。大概分為四類。Key-Value存儲的資料庫,列式存儲資料庫(Hbase),文檔型資料庫和圖形資料庫。
⑤ 為什麼說Spark SQL遠遠超越了MPP SQL
這里說的並不是性能,因為我沒嘗試對比過(下文會有簡單的說明),而是嘗試從某種更高一層次的的角度去看,為什麼Spark SQL 是遠遠超越MPP SQL的。
Spark SQL 和 MPP SQL 其實不在一個維度上。簡而言之,
MPP SQL 是 Spark SQL 的一個子集
Spark SQL 成為了一種跨越領域的交互形態
MPP SQL 是 Spark SQL 的一個子集
MPP SQL 要解決的技術問題是海量數據的查詢問題。這里根據實際場景,你還可以加上一些修飾詞彙,譬如秒級,Ad-hoc 之類。
在實際業務中
探索類業務,比如KPI多維分析,用戶畫像查詢,數據科學家摸底數據等
運營類業務,比如報表(現在很多BI系統基本上完全基於SQL來構建),各種運營臨時統計需求
分析類業務,不過這個會比較淺顯。顯然,真實的的分析應該主要依託一些統計類,機器學習等技術的支持
運維類業務,比如實時查詢查看海量的系統日誌等
MPP SQL 是有一定的性能優勢的,從HAWQ,Impala 等都是基於MPP架構的。然而僅限於此。這些功能Spark SQL 目前都已經涵蓋了,MPP SQL能做的事情,Spark SQL都完成的很漂亮。
依託於Spark 自身的全平台性(漂亮的DataSource API以及各個廠商的努力適配),Spark SQL 基本上可以對接任意多個異構數據源進行分析和查詢。大家可參考我的一個簡略實現 利用StreamingPro實現SQL-互動式查詢。
關於性能可以再多說兩句:
得益於一些具有復雜存儲格式的文件的誕生,譬如CarbonData, Spark SQL 已經實現海量數據的秒級查詢
Spark 自身通過Tungsten等項目的優化(尤其是代碼自動生成),速度越來越生猛,而JVM譬如GC帶來的問題則可以進一步通過off-heap的方式減少。
所以 Spark SQL 和 MPP SQL在性能上的差距也會越來越小。
Spark SQL 成為了一種跨越領域的交互形態
Spark 通過使用DS(2.0統一了DF 和 DS,使用一套SQL引擎)極大的增強了交互語意,意味著你可以用SQL(DS)作為統一的交互語言完成流式,批處理,互動式查詢,機器學習等大數據領域常見場景。這在任何一個系統都是不多見的,也可見Spark團隊的抽象能力。
引言中的那篇文章其實是作者吐槽Spark 團隊對Spark core(RDD)那層關注太少了,所以開始發牢騷。
現在我們再回過頭來看我們常見的一些業務:
實時分析類業務
探索類業務
分析預測類業務
運營報表類業務
首先這些業務都可以使用Spark 來實現。其次統一的交互介面都是DS(DF/SQL),並且DS/SQL 是一套極度易用並且廣泛普及和接受的。
當然Spark 也不是一步就做到這點的,原來流式計算和批量計算就是兩套API, DF 和 DS 也是兩套API,後面經過發展,Databricks 團隊也在積極思考和慢慢成長,經過先前已經有的積累,才做到現在的這一步。
所以本質上DS/SQL 已經成為除了RDD API 以外,另外一套通用的,統一的互動式API,涵蓋了流式,批處理,互動式查詢,機器學習等大數據領域。這也是我們第一次達成這樣的統一,目前來看也僅在Spark平台上得以實現,它是的大數據的使用和學習門檻進一步降低,功在千秋。
RDD VS DS/SQL
DS/SQL 是一套數據類型首先,操作種類受限的表達語言,意味著Spark 團隊可以做更好的性能優化,也意味著門檻更低,在易用性和性能上都能取得良好的平衡
⑥ 請教!成為一名合格的資料庫工程師需掌握那些知識技能
數工討論群:27955282 數工考試交流群:37263632
你們交流。
2004資料庫系統工程師級大綱
一、考試說明
1.考試要求
(1)掌握計算機體系結構以及各主要部件的性能和基本工作原理;
<廣告>
(2)掌握操作系統、程序設計語言的基礎知識,了解編譯程序的基本知識;
(3)熟練掌握常用數據結構和常用演算法;
(4)熟悉軟體工程和軟體開發項目管理的基礎知識;
(5)熟悉計算機網路的原理和技術;
(6)掌握資料庫原理及基本理論;
(7)掌握常用的大型資料庫管理系統的應用技術;
(8)掌握資料庫應用系統的設計方法和開發過程;
(9)熟悉資料庫系統的管理和維護方法,了解相關的安全技術;
(10)了解資料庫發展趨勢與新技術;
(11)掌握常用信息技術標准、安全性,以及有關法律、法規的基本知識;
(12)了解信息化、計算機應用的基礎知識;
(13)正確閱讀和理解計算機領域的英文資料。
2. 通過本考試的合格人員能參與應用信息系統的規劃、設計、構建、運行和管理,能按照用戶需求,設計、建立、運行、維護高質量的資料庫和數據倉庫;作為數據管理員管理信息系統中的數據資源,作為資料庫管理員建立和維護核心資料庫;擔任資料庫系統有關的技術支持,同時具備一定的網路結構設計及組網能力;具有工程師的實際工作能力和業務水平,能指導計算機技術與軟體專業助理工程師(或技術員)工作。
3. 本考試設置的科目包括
(1)信息系統知識,考試時間為150分鍾,筆試;
(2)資料庫系統設計與管理,考試時間為150分鍾,筆試。
二、考試范圍
考試科目1:信息系統知識
1. 計算機系統知識
1.1 硬體知識
1.1.1 計算機體系結構和主要部件的基本工作原理
?CPU和存儲器的組成、性能、基本工作原理
?常用I/O設備、通信設備的性能,以及基本工作原理
?I/O介面的功能、類型和特點
?CISC/RISC,流水線操作,多處理機,並行處理
1.1.2 存儲系統
?虛擬存儲器基本工作原理,多級存儲體系
?RAID類型和特性
1.1.3 安全性、可靠性與系統性能評測基礎知識
?診斷與容錯
?系統可靠性分析評價
? 計算機系統性能評測方法
1.2 數據結構與演算法
1.2.1 常用數據結構
?數組(靜態數組、動態數組)
?線性表、鏈表(單向鏈表、雙向鏈表、循環鏈表)
?棧和隊列
?樹(二叉樹、查找樹、平衡樹、遍歷樹、堆)、圖、集合的定義、存儲和操作
?Hash(存儲位置計算、碰撞處理)
1.2.2 常用演算法
?排序演算法、查找演算法、數值計算、字元串處理、數據壓縮演算法、遞歸演算法、圖的相關演算法
?演算法與數據結構的關系,演算法效率,演算法設計,演算法描述(流程圖、偽代碼、決策表),演算法的復雜性
1.3 軟體知識
1.3.1 操作系統知識
?操作系統的類型、特徵、地位、內核(中斷控制)、進程、線程概念
?處理機管理(狀態轉換、同步與互斥、信號燈、分時輪轉、搶占、死鎖)
?存儲管理(主存保護、動態連接分配、分段、分頁、虛存)
?設備管理(I/O控制、假離線、磁碟調度)
?文件管理(文件目錄、文件的結構和組織、存取方法、存取控制、恢復處理、共享和安全)
?作業管理(作業調度、作業控制語言(JCL)、多道程序設計)
?漢字處理,多媒體處理,人機界面
?網路操作系統和嵌入式操作系統基礎知識
?操作系統的配置
1.3.2 程序設計語言和語言處理程序的知識
? 匯編、編譯、解釋系統的基礎知識和基本工作原理
? 程序設計語言的基本成分:數據、運算、控制和傳輸,程序調用的實現機制
? 各類程序設計語言的主要特點和適用情況
1.4 計算機網路知識
?網路體系結構(網路拓撲、OSI/RM、基本的網路協議)
?傳輸介質,傳輸技術,傳輸方法,傳輸控制
?常用網路設備和各類通信設備
?Client/Server結構、Browser/Server結構、Browser/Web/Datebase結構
?LAN拓撲,存取控制,LAN的組網,LAN間連接,LAN-WAN連接
?網際網路基礎知識及應用
?網路軟體
?網路管理
?網路性能分析
?網路有關的法律、法規
2. 資料庫技術
2.1 資料庫技術基礎
2.1.1 資料庫模型
?資料庫系統的三級模式(概念模式、外模式、內模式),兩級映像(概念模式/外模式、外模式/內模式)
?資料庫模型:數據模型的組成要素,概念數據模型ER圖(實體、屬性、關系),邏輯數據模型(關系模型、層次模型、網路模型)
2.1.2 資料庫管理系統的功能和特徵
?主要功能(資料庫定義、資料庫操作、資料庫控制、事務管理、用戶視圖)
?特徵(確保數據獨立性、資料庫存取、同時執行過程、排它控制、故障恢復、安全性、完整性)
?RDB(關系資料庫),OODB(面向對象資料庫),ORDB(對象關系資料庫),NDB(網狀資料庫)
?幾種常用Web資料庫的特點
2.1.3 資料庫系統體系結構
? 集中式資料庫系統
? Client/Server資料庫系統
? 並行資料庫系統
? 分布式資料庫系統
? 對象關系資料庫系統
2.2 數據操作
2.2.1 關系運算
?關系代數運算(並、交、差、笛卡兒積、選擇、投影、連接、除)
?元組演算
?完整性約束
2.2.2 關系資料庫標准語言(SQL)
?SQL的功能與特點
?用SQL進行數據定義(表、視圖、索引、約束)
?用SQL進行數據操作(數據檢索、數據插入/刪除/更新、觸發控制)
?安全性和授權
?程序中的API,嵌入SQL
2.3 資料庫的控制功能
?資料庫事務管理(ACID屬性)
?資料庫備份與恢復技術(UNDO、REDO)
?並發控制
2.4 資料庫設計基礎理論
2.4.1 關系資料庫設計
?函數依賴
?規范化(第一範式、第二範式、第三範式、BC範式、第四範式、第五範式)
?模式分解及分解應遵循的原則
2.4.2 對象關系資料庫設計
?嵌套關系、 復雜類型,繼承與引用類型
?與復雜類型有關的查詢
?SQL中的函數與過程
?對象關系
2.5 數據挖掘和數據倉庫基礎知識
?數據挖掘應用和分類
?關聯規則、聚類
?數據倉庫的成分
?數據倉庫的模式
2.6 多媒體基本知識
2.6.1 多媒體技術基本概念
?多媒體系統基礎知識
?常用多媒體文件格式
2.6.2 多媒體壓縮編碼技術
?多媒體壓縮編碼技術
?統計編碼
?預測編碼
?編碼的國際標准
2.6.3多媒體技術應用
?簡單圖形的繪制,圖像文件的處理方法
?音頻和視頻信息的應用
?多媒體應用開發過程
2.7 系統性能知識
?性能計算(響應時間、吞吐量、周轉時間)
?性能指標和性能設計
?性能測試和性能評估
2.8 計算機應用基礎知識
?信息管理、數據處理、輔助設計、科學計算,人工智慧等基礎知識
?遠程通信服務及相關通信協議基礎知識
3. 系統開發和運行維護知識
3.1 軟體工程、軟體過程改進和軟體開發項目管理知識
?軟體工程知識
?軟體開發生命周期階段目標和任務
?軟體開發項目基礎知識(時間管理、成本管理、質量管理、人力資源管理、風險管理等)及其常用管理工具
?主要的軟體開發方法(生命周期法、原型法、面向對象法、CASE)
?軟體開發工具與環境知識
?軟體質量管理基礎知識
?軟體過程改進基礎知識
?軟體開發過程評估、軟體能力成熟度評估的基礎知識
3.2 系統分析基礎知識
?系統分析的目的和任務
?結構化分析方法(數據流圖(DFD)和數據字典(DD),實體關系圖(ERD),描述加工處理的結構化語言)
?統一建模語言(UML)
?系統規格說明書
3.3 系統設計知識
?系統設計的目的和任務
?結構化設計方法和工具(系統流程圖、HIPO圖、控制流程圖)
?系統總體結構設計(總體布局,設計原則,模塊結構設計,數據存取設計,系統配置方案)
?系統詳細設計(代碼設計、資料庫設計、用戶界面設計、處理過程設計)
?系統設計說明書
3.4 系統實施知識
?系統實施的主要任務
?結構化程序設計、面向對象程序設計、可視化程序設計
?程序設計語言的選擇、程序設計風格
?系統測試的目的、類型,系統測試方法(黑盒測試、白盒測試、灰盒測試)
?測試設計和管理(錯誤曲線、錯誤排除、收斂、注入故障、測試試用例設計、系統測試報告)
?系統轉換基礎知識
3.5 系統運行和維護知識
?系統運行管理知識
?系統維護知識
?系統評價知識
4. 安全性知識
?安全性基本概念(網路安全、操作系統安全、資料庫安全)
?計算機病毒的防治,計算機犯罪的防範,容災
?訪問控制、防闖入、安全管理措施
?加密與解密機制
?風險分析、風險類型、抗風險措施和內部控制
5.標准化知識
?標准化意識,標准化的發展,標准出台過程
?國際標准、國家標准、行業標准、企業標准基本知識
?代碼標准、文件格式標准、安全標准軟體開發規范和文檔標准
?標准化機構
6.信息化基礎知識
?信息化意識
?全球信息化趨勢、國家信息化戰略、企業信息化戰略和策略
?有關的法律、法規
?遠程教育、電子商務、電子政務等基礎知識
?企業信息資源管理基礎知識
7.計算機專業英語
?掌握計算機技術的基本詞彙
?能正確閱讀和理解計算機領域的英文資料
考試科目2:資料庫系統設計與管理
1.資料庫設計
1.1理解系統需求說明
?了解用戶需求、確定系統范圍
?確定應用系統資料庫的各種關系
?現有環境與新系統環境的關系
?新系統中的數據項、數據字典、數據流
1.2 系統開發的准備
?選擇開發方法,准備開發環境,制訂開發計劃
1.3 設計系統功能
?選擇系統機構,設計各子系統的功能和介面,設計安全性策略、需求和實現方法,制定詳細的工作流和數據流
1.4 資料庫設計
1.4.1 設計數據模型
?概念結構設計(設計ER模型)
?邏輯結構設計(轉換成DBMS所能接收的數據模型)
?評審設計
1.4.2 物理結構設計
?設計方法與內容
?存取方法的選擇
?評審設計與性能預測
1.4.3 資料庫實施與維護
?數據載入與應用程序調試
?資料庫試運行
?資料庫運行與維護
1.4.4 資料庫的保護
?資料庫的備份與恢復
?資料庫的安全性
?資料庫的完整性
?資料庫的並發控制
1.5 編寫外部設計文檔
?編寫系統說明書(系統配置圖、各子系統關系圖、系統流程圖,系統功能說明、輸入輸出規格說明、數據規格說明、用戶手冊框架)
?設計系統測試要求
1.6 設計評審
2. 資料庫應用系統設計
2.1 設計資料庫應用系統結構
?信息系統的架構(如Client/Server)與DBMS
?多用戶資料庫環境(文件伺服器體系結構、Client/Server體系結構)
?大規模資料庫和並行計算機體系結構(SMP、MPP)
?中間件角色和相關工具
?按構件分解,確定構件功能規格以及構件之間的介面
2.2 設計輸入輸出
?屏幕界面設計,設計輸入輸出檢查方法和檢查信息
?資料庫交互與連接(掌握C程序設計語言,以及Java、Visual Basic、Visual C++、PowerBuilder、Delphi中任一種開發工具與資料庫互連的方法(如何與資料庫伺服器溝通))
2.3 設計物理數據
?分析事務在資料庫上運行的頻率和性能要求,確定邏輯數據組織方式、存儲介質,設計索引結構和處理方式
?將邏輯數據結構變換成物理數據結構,計算容量(空間代價),確定存取方法(時間效率)、系統配置(維護代價)並進行優化
2.4 設計安全體系
?明確安全等級
?資料庫的登錄方式
?資料庫訪問
?許可(對象許可、命令許可、授權許可的方法)
2.5 應用程序開發
2.5.1 應用程序開發
?選擇應用程序開發平台
?系統實施順序
?框架開發
?基礎小組的程序開發
?源代碼控制
?版本控制
2.5.2 模塊劃分(原則、方法、標准)
2.5.3 編寫程序設計文檔
?模塊規格說明書(功能和介面說明、程序處理邏輯的描述、輸入輸出數據格式的描述)
?測試要求說明書(測試類型和目標,測試用例,測試方法)
2.5.4 程序設計評審
2.6 編寫應用系統設計文檔
?系統配置說明、構件劃分圖、構件間的介面、構件處理說明、屏幕設計文檔、報表設計文檔、程序設計文檔、文件設計文檔、資料庫設計文檔
2.7 設計評審
3. 資料庫應用系統實施
3.1 整個系統的配置與管理
3.2 常用資料庫管理系統的應用(SQL Server、Oracle、Sybase、DB2、Access或Visual Foxpro)
?創建資料庫
?創建表、創建索引、創建視圖、創建約束、創建UDDT(用戶自定義類型)
?創建和管理觸發器
?建立安全體系
3.3 資料庫應用系統安裝
?擬定系統安裝計劃(考慮費用、客戶關系、雇員關系、後勤關系和風險等因素)
?擬定人力資源使用計劃(組織機構安排的合理性)
?直接安裝(安裝新系統並使系統快速進入運行狀態)
?並行安裝(新舊系統並行運行一段時間)
?階段安裝(經過一系列的步驟和階段使新系統各部分逐步投入運行)
3.4 資料庫應用系統測試
?擬定測試目標、計劃、方法與步驟
?數據載入,准備測試數據
?指導應用程序員進行模塊測試進行驗收
?准備系統集成測試環境測試工具
?寫出資料庫運行測試報告
3.5 培訓與用戶支持
4.資料庫系統的運行和管理
4.1 資料庫系統的運行計劃
?運行策略的確定
<廣告>
?確定資料庫系統報警對象和報警方式
?資料庫系統的管理計劃(執行,故障/恢復,安全性,完整性,用戶培訓和維護)
4.2 資料庫系統的運行和維護
?新舊系統的轉換
?收集和分析報警數據(執行報警、故障報警、安全報警)
?連續穩定的運行
?資料庫維護(資料庫重構、安全視圖的評價和驗證、文檔維護)
?資料庫系統的運行統計(收集、分析、提出改進措施)
?關於運行標准和標准改進一致性的建議
?資料庫系統的審計
4.3 資料庫管理
?數據字典和數據倉庫的管理
?數據完整性維護和管理(實體完整性、參照完整性)
?資料庫物理結構的管理(保證數據不推遲訪問)
?資料庫空間及碎片管理
?備份和恢復(順序、日誌(審計痕跡)、檢查點)
?死鎖管理(集中式、分布式)
?並發控制(可串列性、鎖機制、時間戳、優化)
?數據安全性管理(加密、安全、訪問控制、視圖、有效性確認規則)
?資料庫管理員(DBA)職責
4.4 性能調整
?SQL語句的編碼檢驗
?表設計的評價
?索引的改進
?物理分配的改進
?設備增強
?資料庫性能優化
4.5 用戶支持
?用戶培訓
?售後服務
5. SQL
5.1 資料庫語言
?資料庫語言的要素
?資料庫語言的使用方式(互動式和嵌入式)
5.2 SQL概述
?SQL語句的特徵
?SQL語句的基本成分
5.3 資料庫定義
?創建資料庫(Create Datebase)、創建表(Create Table)
?定義數據完整性
?修改表(Alter Table)、刪除表(Drop Table)
?定義索引(Create Index)、刪除索引(Drop Index)
?定義視圖(Create View)、刪除視圖(Drop View)、更新視圖
5.4 數據操作
?Select語句的基本機構
?簡單查詢
?SQL中的選擇、投影
?字元串比較,涉及空值的比較
?日期時間,布爾值,輸出排序
?多表查詢
?避免屬性歧義
?SQL中的連接、並、交、差
?SQL中的元組變數
?子查詢
5.5 完整性控制與安全機制
?主鍵(Primary Key)約束
?外鍵(Foreign Key)約束
?屬性值上的約束(Null、Check、Create Domain)
?全局約束(Create Assertions)
?許可權、授權(Grant)、銷權(Revoke)
5.6 創建觸發器(Create Trigger)
5.7 SQL使用方式
?互動式SQL
?嵌入式SQL
?SQL與宿主語言介面(Declare、共享變數、游標、卷游標)
?動態SQL
?API
5.8 SQL 標准化
6. 網路環境下的資料庫
6.1 分布式資料庫
6.1.1 分布式資料庫的概念
?分布式資料庫的特點與目標
6.1.2 分布式資料庫的體系結構
?分布式資料庫的模式結構
?數據分布的策略(數據分片、分布透明性)
?分布式資料庫管理系統
6.1.3 分布式查詢處理和優化
6.1.4 分布式事務管理
?分布式資料庫的恢復(故障、恢復、2段提交、3段提交)
?分布式資料庫的透明性(局部、分裂、復制、處理、並發、執行)
6.1.5 分布式資料庫系統的應用
6.2 網路環境下資料庫系統的設計與實施
?數據的分布設計
?負載均衡設計
?資料庫互連技術
6.3 面向Web的DBMS技術
?三層體系結構
?動態Web網頁
?ASP、JSP、XML的應用
7.資料庫的安全性
7.1 安全性策略的理解
?資料庫視圖的安全性策略
?數據的安全級別(最重要的、重要的、注意、選擇)
7.2 資料庫安全測量
?用戶訪問控制(採用口令等)
?程序訪問控制(包含在程序中的SQL命令限制)
?表的訪問控制(視圖機制)
?控制訪問的函數和操作
?外部存儲數據的加密與解密
8. 資料庫發展趨勢與新技術
8.1 面向對象資料庫(OODBMS)
8.1.1 OODBMS的特徵
8.1.2 面向對象數據模型
?對象結構、對象類、繼承與多重繼承、對象標識、對象包含、對象嵌套
8.1.3 面向對象資料庫語言
8.1.4 對象關系資料庫系統(ORDBMS)
?嵌套關系
?復雜類型
?繼承、引用類型
?與復雜類型有關的查詢
?函數與過程
?面向對象與對象關系
?ORDBMS應用領域
8.2 企業資源計劃(ERP)和資料庫
8.2.1 ERP概述
?基本MRP(製造資源計劃)、閉環MRP、ERP
?基本原理、發展趨勢
?ERP設計的總體思路(一個中心、兩類業務、三條干線)
8.2.2 ERP與資料庫
?運行資料庫與ERP數據模型之間的關系
?運行資料庫與ERP資料庫之間的關系
8.2.3 案例分析
8.3 決策支持系統的建立
?決策支持系統的概念
?數據倉庫設計
?數據轉移技術
?聯機分析處理(OLAP)技術
?企業決策支持解決方案
?聯機事務處理(OLTP)