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
  • 示例項目結構 在 Visual Studio 中創建一個 WinForms 應用程式後,項目結構如下所示: MyWinFormsApp/ │ ├───Properties/ │ └───Settings.settings │ ├───bin/ │ ├───Debug/ │ └───Release/ ...
  • [STAThread] 特性用於需要與 COM 組件交互的應用程式,尤其是依賴單線程模型(如 Windows Forms 應用程式)的組件。在 STA 模式下,線程擁有自己的消息迴圈,這對於處理用戶界面和某些 COM 組件是必要的。 [STAThread] static void Main(stri ...
  • 在WinForm中使用全局異常捕獲處理 在WinForm應用程式中,全局異常捕獲是確保程式穩定性的關鍵。通過在Program類的Main方法中設置全局異常處理,可以有效地捕獲並處理未預見的異常,從而避免程式崩潰。 註冊全局異常事件 [STAThread] static void Main() { / ...
  • 前言 給大家推薦一款開源的 Winform 控制項庫,可以幫助我們開發更加美觀、漂亮的 WinForm 界面。 項目介紹 SunnyUI.NET 是一個基於 .NET Framework 4.0+、.NET 6、.NET 7 和 .NET 8 的 WinForm 開源控制項庫,同時也提供了工具類庫、擴展 ...
  • 說明 該文章是屬於OverallAuth2.0系列文章,每周更新一篇該系列文章(從0到1完成系統開發)。 該系統文章,我會儘量說的非常詳細,做到不管新手、老手都能看懂。 說明:OverallAuth2.0 是一個簡單、易懂、功能強大的許可權+可視化流程管理系統。 有興趣的朋友,請關註我吧(*^▽^*) ...
  • 一、下載安裝 1.下載git 必須先下載並安裝git,再TortoiseGit下載安裝 git安裝參考教程:https://blog.csdn.net/mukes/article/details/115693833 2.TortoiseGit下載與安裝 TortoiseGit,Git客戶端,32/6 ...
  • 前言 在項目開發過程中,理解數據結構和演算法如同掌握蓋房子的秘訣。演算法不僅能幫助我們編寫高效、優質的代碼,還能解決項目中遇到的各種難題。 給大家推薦一個支持C#的開源免費、新手友好的數據結構與演算法入門教程:Hello演算法。 項目介紹 《Hello Algo》是一本開源免費、新手友好的數據結構與演算法入門 ...
  • 1.生成單個Proto.bat內容 @rem Copyright 2016, Google Inc. @rem All rights reserved. @rem @rem Redistribution and use in source and binary forms, with or with ...
  • 一:背景 1. 講故事 前段時間有位朋友找到我,說他的窗體程式在客戶這邊出現了卡死,讓我幫忙看下怎麼回事?dump也生成了,既然有dump了那就上 windbg 分析吧。 二:WinDbg 分析 1. 為什麼會卡死 窗體程式的卡死,入口門檻很低,後續往下分析就不一定了,不管怎麼說先用 !clrsta ...
  • 前言 人工智慧時代,人臉識別技術已成為安全驗證、身份識別和用戶交互的關鍵工具。 給大家推薦一款.NET 開源提供了強大的人臉識別 API,工具不僅易於集成,還具備高效處理能力。 本文將介紹一款如何利用這些API,為我們的項目添加智能識別的亮點。 項目介紹 GitHub 上擁有 1.2k 星標的 C# ...