NineData:通過一個SQL語句構建實時數倉

来源:https://www.cnblogs.com/ninedata/archive/2023/11/14/17831291.html
-Advertisement-
Play Games

NineData DSQL 是針對多個同異構資料庫系統進行跨庫查詢的功能,當前支持對錶和視圖進行 SELECT 操作。您可以在一個查詢中訪問多個資料庫,獲取分散在各個資料庫中的有用信息,並且將這些信息聚合為一份查詢結果返回,輕鬆實現跨多個庫、多個數據源,乃至跨多個異構數據源的數據查詢。 ...


隨著企業數據量呈現出爆炸式增長,跨部門、跨應用、跨平臺的數據交互需求越來越頻繁,傳統的數據查詢方式已經難以滿足這些需求。同時,不同資料庫系統之間的數據格式、查詢語言等都存在差異,直接進行跨庫查詢十分困難。

原生跨庫查詢的局限性

雖然 MySQL、Oracle、PostgreSQL 等資料庫系統都提供了自身的跨庫查詢功能,但是存在諸多局限性:

  • 資料庫類型限制:MySQL 的 Federated、Oracle 的 Database Links 功能均要求目標資料庫也必須是相同類型的資料庫,這限制了跨庫查詢功能的適用範圍,不適用於異構資料庫的跨庫查詢。
  • 額外性能損耗:自帶的跨庫查詢功能可能會有 JOIN 操作帶來的額外性能損耗,特別是在大規模數據查詢或數據傳輸時,會增加系統負擔,影響其他查詢的效率。

這些局限性意味著資料庫系統自帶的跨庫查詢功能可能無法滿足複雜多樣的數據分析需求,特別是在異構資料庫、大規模數據查詢、有高性能高安全性方面需求等場景。

為解決這些問題,NineData DSQL 應運而生。

什麼是 NineData DSQL ?

NineData DSQL 是針對多個同異構資料庫系統進行跨庫查詢的功能,當前支持對錶和視圖進行 SELECT 操作。您可以在一個查詢中訪問多個資料庫,獲取分散在各個資料庫中的有用信息,並且將這些信息聚合為一份查詢結果返回,輕鬆實現跨多個庫、多個數據源,乃至跨多個異構數據源的數據查詢。

NineData DSQL 具有如下特性:

  1. 連接多個資料庫系統:支持連接多個資料庫系統,並確保這些資料庫系統之間的相容性。這些資料庫系統可以來自不同的廠商或平臺,且數據格式、存儲方式、查詢語言等可以存在差異。
  2. 統一的查詢語法:DSQL 提供了統一的查詢語法,您僅需使用一種語法即可跨多個異構或同構資料庫進行查詢,系統會自動將該語法解析並轉換成不同類型數據源的查詢語法進行下發查詢。
  3. 結果整合和輸出:整合同異構資料庫系統的查詢結果,並統一輸出格式,方便您獲取所需信息。您無需關心數據存儲在哪個資料庫中,只需通過一個查詢就可以獲得所需的結果。
  4. 數據隱私和安全保護:基於 NineData 的許可權管控功能,支持對敏感數據進行脫敏處理、對訪問許可權進行控制等,保護數據的隱私和安全,防止數據泄露和非法訪問。
  5. 圖形化界面支持:提供一目瞭然的圖形化界面,方便您進行可視化的查詢和管理,提高您的工作效率。

易於記憶的 DSQL 查詢語法

在 DSQL 中,無論是執行聯表(視圖)查詢還是單表(視圖)查詢,指定來源數據源時都需要採用三段式語法,即<DBLINK 名稱>.<庫名|Schema 名>.<表名(視圖名)>。

示例 1:跨異構源查詢,從 DBLINK1(MySQL) 和 DBLINK2(Oracle) 中查詢數據。

SELECT *
FROM DBLINK1.database_name.table_name a,
DBLINK2.schema_name.table_name b
WHERE a.id=b.id;

示例 2:單表(視圖)查詢,從 DBLINK1 中查詢數據。

SELECT *
FROM DBLINK1.database.table_name
WHERE id=1;

如果您的庫名或表(視圖)名以數字開頭,或使用了預留欄位,則需要使用雙引號("")包裹該名稱,否則查詢失敗。例如:

SELECT * FROM dblink_mysql_3451."9zdbtest3".sbtest1;

什麼情況下需要使用 DSQL?

  1. 企業級數據整合:企業經常需要從多個部門或系統中整合數據,以提供更全面的視角。通過 DSQL ,企業可以在一個查詢中訪問多個資料庫,獲取分散在各個資料庫中的有用信息,然後將其整合在一起,方便數據分析和決策。
  2. 數據挖掘與分析:數據挖掘和分析需要大量的數據支持。通過 DSQL ,您可以在多個資料庫中檢索需要的數據,然後使用挖掘和分析工具對數據進行深入的研究和分析。
  3. 數據倉庫:數據倉庫是用於存儲和管理大量數據的系統。通過 DSQL ,您無需搭建數據倉庫,即可實現數據倉庫的功能。

操作示例

5.1 查看需要查詢的庫表列信息

您可以在左側導航欄查看需要查詢的 DBLink 名、庫名|Schema 名、表名、視圖名、列名等信息,無需摸黑操作。

查看需要查詢的庫表列信息

5.2 編寫跨庫查詢語句並執行

通過簡單的查詢 SQL 即可對多個同、異構數據源進行查詢,支持對查詢結果中的敏感欄位進行脫敏。

編寫跨庫查詢語句並執行

5.3 整合多表查詢結果並導出

執行跨庫查詢後,系統會整合查詢結果到一張表中,您可以對結果集執行導出操作。同時,還支持對結果集進行搜索。

整合多表查詢結果並導出

5.4 收藏常用 DBLink

如果 DBLink 很多,您可以收藏常用的幾個 DBLink,方便查找。

收藏常用 DBLink

綜上所述,NineData DSQL 提供了全局視角審視您的數據,在減少了數據處理的複雜性的同時,提高了數據利用率,為企業提供了更靈活、高效和安全的方式來處理數據,可促進數據驅動的決策和業務發展,助力企業降本增效。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 一:背景 1. 講故事 前幾天有位朋友找到我,說他的窗體程式有卡死現象,讓我幫忙看下怎麼回事,解決這種問題就需要在卡死的時候抓一個dump下來,拿到dump之後就可以分析了。 二:為什麼會卡死 1. 觀察主線程 窗體程式的卡死,需要觀察主線程此時正在做什麼,可以用 !clrstack 命令觀察。 0 ...
  • 上篇文章講述了C#特性(Attribute)知識點,本文將介紹多線程的知識點。多線程編程是現代軟體開發中的重要組成部分,它能夠充分利用多核處理器,提高應用程式的性能和響應性。C#作為.NET開發的主要語言,提供了強大的多線程支持。本文將介紹C#多線程知識點,幫助.NET開發者更好地應對多線程編程。 ...
  • 前言 Redis是一款強大的高性能鍵值存儲資料庫,也是目前NOSQL中最流行比較流行的一款資料庫,它在廣泛的應用場景中扮演著至關重要的角色,包括但不限於緩存、消息隊列、會話存儲等。在本文中,我們將介紹如何基於C# Socket來實現一個簡單的Redis客戶端類RedisClient,來演示構建請求和 ...
  • 目錄 Welcome to YARP - 1.認識YARP並搭建反向代理服務 Welcome to YARP - 2.配置功能 2.1 - 配置文件(Configuration Files) 2.2 - 配置提供者(Configuration Providers) 2.3 - 配置過濾器(Confi ...
  • 零基礎快速上手STM32開發(手把手保姆級教程) 1. 前言 作為一名嵌入式工程師,STM32 是必須要學習的一款單片機,同時這款單片機資料足夠多,而且比較簡單,非常適合初學者入門。 STM32 是一款由 STMicroelectronics 公司開發的 32 位微控制器,由於其強大的處理能力和廣泛 ...
  • 插入到集合中: 要將記錄(在MongoDB中稱為文檔)插入到集合中,使用insert_one()方法。insert_one()方法的第一個參數是一個包含文檔中每個欄位的名稱和值的字典。 import pymongo myclient = pymongo.MongoClient("mongodb:// ...
  • 事務的底層原理 在事務的實現機制上,MySQL 採用的是 WAL:Write-ahead logging,預寫式日誌,機制來實現的。 在使用 WAL 的系統中,所有的修改都先被寫入到日誌中,然後再被應用到系統中。通常包含 redo 和 undo 兩部分信息。 為什麼需要使用 WAL,然後包含 red ...
  • 項目應用中需要用mysql執行一下命令行.幾經搜索可以安裝lib_mysqludf_sys插件可以實現 本地window環境安裝(mysql8.0 , 64位 , 使用lib_mysqludf_sys.dll文件) -- 查看環境中插件目錄 show variables like '%plugin% ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...