doris: SQL Server

Doris JDBC Catalog 支持通過標準 JDBC 接口連接 SQL Server 數據庫。本文檔介紹如何配置 SQL Server 數據庫連接。

使用須知?

要連接到 SQL Server 數據庫,您需要

  • SQL Server 2012 或更高版本,或 Azure SQL 數據庫。

  • SQL Server 數據庫的 JDBC 驅動程序,您可以從?Maven 倉庫下載最新或指定版本的 SQL Server JDBC 驅動程序。推薦使用 SQL Server JDBC Driver 11.2.x 及以上版本。

  • Doris 每個 FE 和 BE 節點和 SQL Server 服務器之間的網絡連接,默認端口為 1433。

連接 SQL Server?

CREATE CATALOG sqlserver PROPERTIES ("type"="jdbc","user"="root","password"="secret","jdbc_url" = "jdbc:sqlserver://<host>:<port>;databaseName=<databaseName>;encrypt=false","driver_url" = "mssql-jdbc-11.2.3.jre8.jar","driver_class" = "com.microsoft.sqlserver.jdbc.SQLServerDriver"
)

備注

jdbc_url?定義要傳遞給 SQL Server JDBC 驅動程序的連接信息和參數。?SQL Server JDBC 驅動程序文檔中提供了 URL 支持的參數。

連接安全?

JDBC 驅動程序以及連接器自動使用傳輸層安全性 (TLS) 加密和證書驗證。這需要在 SQL Server 數據庫主機上配置合適的 TLS 證書。

如果您沒有建立必要的配置,您可以使用 encrypt 屬性禁用連接字符串中的加密:

"jdbc_url"="jdbc:sqlserver://<host>:<port>;databaseName=<databaseName>;encrypt=false"

SQL Server JDBC 驅動程序文檔的 TLS 部分詳細介紹了 trustServerCertificate、hostNameInCertificate、trustStore 和 trustStorePassword 等其他參數。

層級映射?

映射 SQLServer 時,Doris 的一個 Database 對應于 SQL Server 中指定 Database(jdbc_url?參數中的?<databaseName>)下的一個 Schema。而 Doris 的 Database 下的 Table 則對應于 SQLServer 中,Schema 下的 Tables。即映射關系如下:

DorisSQLServer
CatalogDatabase
DatabaseSchema
TableTable

類型映射?

SQL Server 到 Doris 類型映射?

SQL Server TypeDoris TypeComment
bitBOOLEAN
tinyintSMALLINTSQLServer 的 tinyint 是無符號數,所以映射為 Doris 的 SMALLINT
smallintSMALLINT
intINT
bigintBIGINT
realFLOAT
floatDOUBLE
moneyDECIMAL(19,4)
smallmoneyDECIMAL(10,4)
decimal/numericDECIMAL
dateDATE
datetime/datetime2/smalldatetimeDATETIMEV2
char/varchar/text/nchar/nvarchar/ntextSTRING
time/datetimeoffsetSTRING
timestampSTRING讀取二進制數據的十六進制顯示,無實際意義
OtherUNSUPPORTED

查詢優化?

謂詞下推?

當執行類似于?where dt = '2022-01-01'?這樣的查詢時,Doris 能夠將這些過濾條件下推到外部數據源,從而直接在數據源層面排除不符合條件的數據,減少了不必要的數據獲取和傳輸。這大大提高了查詢性能,同時也降低了對外部數據源的負載。

行數限制?

如果在查詢中帶有 limit 關鍵字,Doris 會將 limit 轉義為 SQL Server 的?TOP?語法,以減少數據傳輸量。

轉義字符?

Doris 會在下發到 SQL Server 的查詢語句中,自動在字段名與表名上加上轉義符:([]),以避免字段名與表名與 SQL Server 內部關鍵字沖突。

常見問題?

  1. 連接 SQL Server 出現證書認證異常

    SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption.
    Error: "sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
    unable to find valid certification path to requested target". ClientConnectionId:a92f3817-e8e6-4311-bc21-7c66
    

    可在創建 Catalog 的?jdbc_url?把 JDBC 連接串最后增加?encrypt=false?,如?"jdbc_url" = "jdbc:sqlserver://127.0.0.1:1433;DataBaseName=doris_test;encrypt=false"

  2. 連接 SQL Server 出現 TLS 異常

    The server selected protocol version TLS10 is not accepted by client preferences [TLS13, TLS12]
    

    這是因為 SQL Server 與 JDBC 客戶端之間的 TLS 協議版本不匹配。連接的 SQL Server 僅支持 TLS 1.0,而 JDBC 客戶端所在 JAVA 環境默認禁用了 TLS 1.0。

    解決方式如下:

    1. 在 SQL Server 上啟用 TLS 1.2。 參考:SQL Server TLS 1.2 支持
    2. 啟用 JDK 的 TLS 1.0。
      vim ${JAVA_HOME}/lib/security/java.security
      #找到這段
      jdk.tls.disabledAlgorithms=SSLv3, TLSv1, TLSv1.1, RC4, DES, MD5withRSA, \
      DH keySize < 1024, EC keySize < 224, 3DES_EDE_CBC, anon, NULL, \
      include jdk.disabled.namedCurves#刪掉其中的 TLSv1, TLSv1.1 , 改成下面這樣即可
      jdk.tls.disabledAlgorithms=SSLv3, RC4, DES, MD5withRSA, \
      DH keySize < 1024, EC keySize < 224, anon, NULL, \
      include jdk.disabled.namedCurves
      

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/72881.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/72881.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/72881.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Leetcode 刷題記錄 05 —— 普通數組

本系列為筆者的 Leetcode 刷題記錄&#xff0c;順序為 Hot 100 題官方順序&#xff0c;根據標簽命名&#xff0c;記錄筆者總結的做題思路&#xff0c;附部分代碼解釋和疑問解答。 目錄 01 最大子數組和 方法一&#xff1a;動態規劃&#xff08;卡達尼算法&#xff09; 方法…

《DataWorks 深度洞察:量子機器學習重塑深度學習架構,決勝復雜數據戰場》

在數字化浪潮洶涌澎湃的當下&#xff0c;大數據已然成為推動各行業發展的核心動力。身處這一時代洪流&#xff0c;企業對數據的處理與分析能力&#xff0c;直接關乎其競爭力的高低。阿里巴巴的DataWorks作為大數據領域的扛鼎之作&#xff0c;憑借強大的數據處理與分析能力&…

wordpress自定the_category的輸出結構

通過WordPress的過濾器the_category來自定義輸出內容。方法很簡單&#xff0c;但是很實用。以下是一個示例代碼&#xff1a; function custom_the_category($thelist, $separator , $parents ) {// 獲取當前文章的所有分類$categories get_the_category();if (empty($categ…

2025牛客寒假算法基礎集訓營6

A.復制雞 思路&#xff1a;比較簡單&#xff0c;略。 void solve() {int n, m, k;cin >> n;int last -1, ans 0;for (int i 0; i<n; i){int x;cin >> x;if (x ! last){ans;}last x;}cout << ans << endl; } B.好伙計猜拳 思路&#xff1a;這…

【C#】詳解C#中的內存管理機制

文章目錄 前言一、C#內存管理的基本機制&#xff08;1&#xff09;托管堆&#xff08;Managed Heap&#xff09;&#xff08;2&#xff09;垃圾回收&#xff08;Garbage Collection&#xff09;&#xff08;3&#xff09;棧內存 二、 開發者需要主動管理的場景&#xff08;1&am…

ROS云課基礎題庫-01C++案例-甜甜圈

效率是核心&#xff0c;但效率高的教程會忽略掉非常多的細節。 解決問題的思路和細節對于一個問題的有效求解至關重要。 資料 云課五分鐘-02第一個代碼復現-終端甜甜圈C-CSDN博客 從云課五分鐘到五秒鐘焦慮的甜甜圈向前沖-CSDN博客 說明 復現重要性沒有那么大&#xff0c;…

C/S架構與B/S架構

一、定義與核心區別 C/S架構&#xff08;Client/Server&#xff0c;客戶端/服務器&#xff09; 客戶端需安裝專用軟件&#xff08;如QQ、企業ERP系統&#xff09;&#xff0c;直接與服務器通信。服務器端通常包括數據庫和業務邏輯處理1。特點&#xff1a;客戶端承擔部分計算任務…

【匯編語言】單片機程序執行過程

一、任務需求 指示燈LED4閃爍&#xff0c;亮0.5秒&#xff0c;滅0.5秒&#xff0c;無限循環 二、針對硬件的編程 1、確定原理圖2、確定硬件的物理關系 三、設計步驟 1.用自己的語言描述工作流程 1.1指示燈LED4亮1.2延時0.5秒1.3指示燈LED4滅1.4延時0.5秒1.5跳轉到1.1步 …

openharmony 富對富 WiFi投屏設計

castengine_wifi_display部件別名Sharing&#xff0c;媒體分享之意。擁有流媒體協議接入、媒體預覽、媒體轉分發能力&#xff0c;受投播管理服務管理和調用&#xff0c;是音視頻投播子系統重要的流媒體能力部件。提供一套簡單的Native C的接口&#xff0c;主要業務是Miracast投…

Android項目優化同步速度

最近項目需要使用ffmpeg&#xff0c;需要gradle配置引入ffmpeg庫&#xff0c;發現原來通過google官方的代碼倉&#xff0c;下載太慢了&#xff0c;每秒KB級別的速度。&#xff08;之前下gradle/gradle plugin都不至于這么慢&#xff09;&#xff0c;于是想到配置國內鏡像源來提…

Git 如何配置多個遠程倉庫和免密登錄?

自我簡介&#xff1a;4年導游&#xff0c;10年程序員&#xff0c;最近6年一直深耕低代碼領域&#xff0c;分享低代碼和AI領域見解。 通用后臺管理系統 代號&#xff1a;虎鯨 緣由 每次開發后臺界面都會有很多相同模塊&#xff0c;嘗試抽離出公共模塊作為快速開發的基座。 目標…

JVM組成面試題及原理

Java Virtual Machine&#xff08;JVM&#xff09;是Java程序的運行環境&#xff08;java二進制字節碼的運行環境&#xff09; 好處&#xff1a; 一次編寫&#xff0c;到處運行自動內存管理&#xff0c;垃圾回收機制 JVM由哪些部分組成&#xff0c;運行流程是什么&#xff1f;…

江科大51單片機筆記【11】AT24C02數據存儲秒表

一、數據存儲 先把需要的模塊導入做個測試 //main.c#include <REGX52.H> #include " LCD1602.h" #include " Key.h"void main() {LCD_Init();LCD_ShowString(1,1,"Hello");while(1){}} 代碼思路 分成兩塊寫&#xff0c;一塊寫I2C.c&am…

Hadoop的運行模式

Hadoop的運行模式 1、本地運行模式2、偽分布式運行模式3、完全分布式運行模式4、區別與總結 Hadoop有三種可以運行的模式&#xff1a;本地運行模式、偽分布式運行模式和完全分布式運行模式 1、本地運行模式 本地運行模式無需任何守護進程&#xff0c;單機運行&#xff0c;所有…

2.裝飾器模式

概述 裝飾器模式&#xff1a;在原有結構&#xff0c;動態地為對象添加職責&#xff0c;它是一種靈活的擴展功能方式。 業務場景&#xff1a;創建訂單 假設你正在開發一個電商系統&#xff0c;用戶在創建訂單時可以選擇不同的服務&#xff08;如折扣、配送、禮品包裝等&#…

C++11新特性 10.初始化列表、initializer_list

目錄 一.初始化列表 使用示例 二.initializer_list 1.基本概念 2.使用示例 一.初始化列表 C11提供的統一初始化方式&#xff0c;實現直接對數據初始化 使用示例 /* 初始化列表 */ #include <iostream> using namespace std; class Person { public:Person(string…

Vue 的 render 函數如何與 JSX 結合使用

在 Vue.js 中&#xff0c;render 函數提供了一種更底層的方式來創建虛擬 DOM 節點&#xff0c;而 JSX 則是一種 JavaScript 的語法擴展&#xff0c;允許開發者在 JavaScript 代碼中直接編寫類似 HTML 的結構。結合使用 render 函數和 JSX 可以帶來更高的靈活性和編程能力&#…

基于DeepSeek的智慧醫藥系統(源碼+部署教程)

運行環境 智慧醫藥系統運行環境如下&#xff1a; 前端&#xff1a; HTMLCSS后端&#xff1a;Java AIGCDeepseekIDE工具&#xff1a;IDEA技術棧&#xff1a;Springboot HTMLCSS MySQL 主要角色 智慧醫藥系統主要分為兩個角色。 游客 尚未進行注冊和登錄。具備登錄注冊、…

南開提出1Prompt1Story,無需訓練,可通過單個連接提示實現一致的文本到圖像生成。

&#xff08;1Prompt1Story&#xff09;是一種無訓練的文本到圖像生成方法&#xff0c;通過整合多個提示為一個長句子&#xff0c;并結合奇異值重加權&#xff08;SVR&#xff09;和身份保持交叉注意力&#xff08;IPCA&#xff09;技術&#xff0c;解決了生成圖像中身份不一致…

BLUEM2引擎源碼2025最新版

BLUE 引擎解析&#xff1a;傳奇私服圈中的熱門引擎 一、BLUE 引擎簡介 BLUE 引擎是傳奇私服圈子中較為知名的一款游戲引擎&#xff0c;它在傳統的傳奇引擎基礎上進行了優化和擴展&#xff0c;使得私服開發者可以更加方便地搭建和管理服務器。相比于早期的 GEE、LEG、Hero 等引…