oracle 峰度 函数,Oracle Database 21c 十大新特性一览
摘要:Oracle 考慮到 2020 年我們的客戶將面臨前所未有的經濟和業務中斷。我們決定不將 Database 20c Preview 版本升級為 General Availability。 相反,我們將所有 20c 功能都合并到 21c 版本中,并使 21c 在我們的 “自制數據庫免費層” 中可用,以便所有人都可以免費試用驅動新功能和增強功能。
Oracle 已經在官網上線了關于 Oracle Database 21c 的在線文檔,這讓所有關于 Oracle 數據庫的用戶心中一驚,轉眼 2020 年已經接近尾聲,Oracle 數據庫又將進入下一個版本周期。
然而我們必須和大家進一步梳理一下,Oracle 的版本變化,并且明確:Oracle 21c 其實就相當于 Oracle 20c,因為 20c 從未進入公眾可用的版本發布。
在官方的版本計劃中,20c 已經被移除,并做出如下聲明:
Oracle 考慮到 2020 年我們的客戶將面臨前所未有的經濟和業務中斷。我們決定不將 Database 20c Preview 版本升級為 General Availability。 相反,我們將所有 20c 功能都合并到 21c 版本中,并使 21c 在我們的 “自制數據庫免費層” 中可用,以便所有人都可以免費試用驅動新功能和增強功能。
Oracle 21c 在 Oracle CLoud 上,在 2020 年 12 月 8 日可用,在企業級公眾版本將于 2021 年上半年發布。現在的年度版本被稱為『創新版本』,僅作有限的支持,有別于長期支持版本。21c 的支持期僅僅為 2023 年 6 月,沒有擴展支持。
結合 Oracle 20c 和 21c 的革新,我們再次整理這兩個版本中,引人矚目的十大新特性,與客戶和讀者朋友分享。
1. 原生的區塊鏈支持 - Native Blockchain Tables
隨著區塊鏈技術的不斷成熟和發展,Oracle 在其多模的數據庫支持中,引入了原生的區塊鏈表支持。在 21c 中數據庫中可以通過 blockchain 關鍵字來創建區塊鏈表:
CREATE Blockchain TABLE ;
很多客戶希望在不涉及多個組織的情況下, 利用區塊鏈的防篡改和不可否認屬性,區塊鏈表使客戶可以在需要高度防篡改的數據管理,而又無需在多個組織中分布分類帳或依靠分散的信任模型時使用 Oracle 數據庫。
為了遵循區塊鏈的可信和安全機制,區塊鏈表只能 INSERT 記錄,記錄之間通過 Hash 算法進行鏈接,不能修改,同時鏈可以被多方參與者驗證。區塊鏈表,可以和其他常規表進行關聯,進行事務處理或者查詢。
區塊鏈表,在創建時可以指定保護的周期屬性,例如 3 年內不可刪除等,以建立數據生命周期管理。
區塊鏈表中的行是防篡改的。每行包含一個密碼哈希值,該值基于該行中的數據和鏈中上一行的哈希值。如果某行被篡改,則該行的哈希值會更改,這會導致鏈中下一行的哈希值發生更改。為了增強欺詐保護,可以將可選的用戶簽名添加到行中。如果您在區塊鏈表行上簽名,則必須使用數字證書。在驗證區塊鏈表中的鏈時,數據庫需要證書來驗證行簽名。
下圖是區塊鏈表的示意圖:
可以對區塊鏈表進行索引和分區。您可以通過建表時的選項控制是否以及何時從區塊鏈表中刪除行。您還可以控制是否可以刪除區塊鏈表。區塊鏈表可與事務和查詢中的(常規)表一起使用。
區塊鏈表用于實施集中式區塊鏈應用程序,其中中央權限是 Oracle 數據庫。集中式區塊鏈為組織提供了更大的可定制性和控制力,因為他們可以決定誰可以加入網絡。參與者是不同的數據庫用戶,他們信任 Oracle 數據庫來維護交易的防篡改區塊鏈。所有參與者都必須具有將數據插入到區塊鏈表中的特權。區塊鏈的內容由應用程序定義和管理。與分散式區塊鏈相比,集中式區塊鏈與基于共識的分布式區塊鏈相比,首選應用在更高吞吐量和更低交易延遲的場景。
區塊鏈表,可以和其他常規表進行關聯,進行事務處理或者查詢。
針對區塊鏈表,以下這些操作是禁止的:
Updating and merging rows
Adding, dropping, and renaming columns
Truncating the blockchain table
Dropping partitions
Defining BEFORE ROW - triggers that fire for update operations (other triggers are allowed)
Direct-path loading
Inserting data using parallel DML
Converting a regular table to a blockchain table or vice versa
XA transactions2. 持久化內存存儲支持 - Persistent Memory Store
自 Oracle 19c 開始,Oracle 就已經開始修改程序以更好的配合持久化內存,提升數據庫性能。
在 21c 中,Oracle 明確支持了持久化內存 - Persistent Memory,雖然目前發布的信息是在 Exadata 中支持,但是軟件的提升是通過的,在各類一體機中,或者是傳統架構中使用持久化內存是毫無障礙的。
持久化內存的引入,讓 Oracle 的存儲多達 6 級:SATA、SAS、SSD、Flash、PMEM、RAM,冷熱數據分離,分層存儲,可以進行更加精細化的架構設計。整體架構提供小于 19 個微秒的 IO 延時。
在 Oracle 新發布的 Exadata X8M 一體機中,100Gb 的以太網和 RoCE 獲得支持,這是第一次在 Oracle 一體機中引入了基于 RoCE 的架構;
存儲服務器上,通過 PMEM 在 Flash 之前進行加速,RoCE 和 PMEM 提供了極速性能;
3. SQL 的宏支持 - SQL Macro
宏的作用在于讓 SQL 獲得進一步的概括和抽象能力,允許開發者將復雜的處理邏輯通過宏進行定義,然后在后續程序處理中可以反復引用這一定義。
在 21c 中引入的 SQL Macro 支持兩種宏類型,Scalar 和 Table 類型。
SCALR 表達式可以用于 SELECT 列表、WHERE/HAVING、GROUP BY/ORDER BY 子句;
TABLE 表達式可以用于 FROM 語句。
看一個簡單的示例,例如需要一個函數,返回數據的下限和上限,舉例而言,如果 x upper (特定大值) 則返回 upper(作為上限),否則返回 x 本身。
例如,如下創建一個 Clip 函數,返回一個 SCALAR 值:
create function clip(lo number, x number, hi number)return varchar2 SQL_MACRO(SCALAR) isbegin return 'least(greatest(x, lo), hi)';end;/
接下來就可以如下引用這個函數:
SELECT ename, CLIP (:lower, sal, :upper)FROM emp;
Macro 函數被查詢改寫為如下執行:
SELECT ename, least(greatest(sal, :lower), :upper)FROM emp;
這個查詢返回的結果如下,可以看到 CLIP 的效果:
SQL> SELECT ename,clip(1000,sal,2000) FROM emp;ENAME CLIP(1000,SAL,2000)---------- -------------------SMITH 1000ALLEN 1600WARD 1250JONES 2000MARTIN 1250BLAKE 2000CLARK 2000SCOTT 2000KING 2000TURNER 1500ADAMS 1100JAMES 1000FORD 2000MILLER 1300
總結一下 SQL Macro 的意義:
?SQL 宏提供了一個基于 SQL 的簡單框架,用于封裝業務 / 技術邏輯
- 無需在查詢中調用自定義 PL SQL 過程和函數
? 可以在 SQL 語句內的任何地方使用;
? 自動繼成所有常用的數據庫內查詢優化;
? 可以建立參數化視圖;
? 簡化從非 Oracle 數據庫遷移到 Oracle 數據庫;
4. 原生的 JSON 數據類型支持
12.1.0.2 引入 JSON 支持, 允許將 JSON 存儲在 varchar2 或 LOB(CLOB 或 BLOB)中,可以利用 Schemaless 設計模型所提供的靈活性來構建應用程序,但又能從 Oracle 數據庫的功能中受益。
可以使用標準 SQL 查詢 JSON 文檔,利用高級分析功能,對單個屬性或整個文檔進行索引,并行處理數十億個 JSON 文檔。還可以通過使用 Java、Node.js、Python、C 語言和 REST 的 SODA API 來訪問 Oracle 數據庫,將其視為 NoSQL 數據庫。
在 21c 中,Native 數據類型 “JSON” 改進了對 JSON 的支持。在讀取或更新操作時不必對 JSON 進行解析,而只在插入時才進行解析,JSON 以內部二進制格式保存,這使得訪問速度更快。讀取和更新速度提高了 45 倍,對非常大的 JSON 文檔的更新速度提高了 2030 倍。
新的函數 JSON_TRANSFORM,使得在一次操作中更新和刪除文檔中的多個屬性變得更加簡單。
5. SQL 新特性和函數擴展 - Extensions
在 Oracle 21c 中,關于 SQL 的函數擴展很多,包括對于 ANSI 2011 標準的部分支持,進一步的提升了 SQL 的處理能力。
在分析計算中,21c 提供了兩種新的分布聚類算法,偏態 - SKEWNESS、峰度 - KURTOSIS,通過這兩個算法,可以對給定數據進行更豐富的分布計算,新特性支持物化視圖,遵循和方差(VARIANCE)相同的語義。
在 21c 中,Oracle 還增加了 CHECKSUM 函數,用于檢測數據的完整性,這個函數可以用于替代 DBMS_SQLHASH.GETHASH 函數,DBA 不必再為此進行單獨授權。
新的位運算符也被引入,21c 中支持的新的位運算包括:BITANDAGG、BITORAGG、BITXORAGG 。
對于分析函數,Oracle 21c 擴展了窗口邊界,通過 GROUPS 關鍵字可以進行特定分組數據的計數。
關鍵字 GROUPS 強調與分組查詢的關系,使用 GROUPS 關鍵字,我們可以回答諸如,每個交易賬號執行 "購買" 的最后五個交易日中,花費的金額和 以及 購買的不同股票代碼的數量等。
6. 自動化的 In-Memory 管理 - Self-Managing In-Memory
In-Memory 技術引入之后,為 Oracle 數據庫帶來了基于內存的列式存儲能力,支持 OLTP 和 OLAP 混合的計算。
在 21c 中,Oracle 支持了自主的 In-Memory 管理,通過一個簡單的初始化參數 inmemoryautomaticlevel 設置,DBA 將不再需要人工指定將哪些數據表放置在內存中,數據庫將自動判斷需要將哪些對象加入或驅逐出 In-Memory 的列式存儲中。
內存對象的管理,是通過數據庫內置的機器學習算法自動實現的,并且數據庫可以進一步的自動壓縮較少訪問的內存列數據。
inmemoryautomaticlevel = HIGH 設置,可以用于指定高度的自動的內存管理級別。
7. 廣泛的機器學習算法和 AutoML 支持
...
? 接下來內容請訪問原文(https://www.modb.pro/db/41888)進行查看~
更多數據庫相關內容,可訪問墨天輪(https://www.modb.pro/)進行瀏覽。
總結
以上是生活随笔為你收集整理的oracle 峰度 函数,Oracle Database 21c 十大新特性一览的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 不同权限登录界面,PHP中如何实
- 下一篇: Linux下编译build的命令,【li