随着企业数据量呈现出爆炸式增长,跨部门、跨应用、跨平台的数据交互需求越来越频繁,传统的数据查询方式已经难以满足这些需求。同时,不同数据库系统之间的数据格式、查询语言等都存在差异,直接进行跨库查询十分困难。
虽然 MySQL、Oracle、PostgreSQL 等数据库系统都提供了自身的跨库查询功能,但是存在诸多局限性:
综合来看,这些局限性意味着数据库系统自带的跨库查询功能可能无法满足复杂多样的数据分析需求,特别是在异构数据库、大规模数据查询、有高性能高安全性方面需求等场景。
NineData DSQL 是针对多个同异构数据库系统进行跨库查询的功能,当前支持对表和视图进行 SELECT 操作。您可以在一个查询中访问多个数据库,获取分散在各个数据库中的有用信息,并且将这些信息聚合为一份查询结果返回,轻松实现跨多个库、多个数据源,乃至跨多个异构数据源的数据查询。
NineData DSQL 具有如下特性:
在 DSQL 中,无论是执行联表(视图)查询还是单表(视图)查询,指定来源数据源时都需要采用三段式语法,即
示例 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;
5.1 查看需要查询的库表列信息
您可以在左侧导航栏查看需要查询的 DBLink 名、库名|Schema 名、表名、视图名、列名等信息,无需摸黑操作。
查看需要查询的库表列信息
5.2 编写跨库查询语句并执行
通过简单的查询 SQL 即可对多个同、异构数据源进行查询,支持对查询结果中的敏感字段进行脱敏。
编写跨库查询语句并执行
5.3 整合多表查询结果并导出
执行跨库查询后,系统会整合查询结果到一张表中,您可以对结果集执行导出操作。同时,还支持对结果集进行搜索。
整合多表查询结果并导出
5.4 收藏常用 DBLink
如果 DBLink 很多,您可以收藏常用的几个 DBLink,方便查找。
收藏常用 DBLink
综上所述,NineData DSQL 提供了全局视角审视您的数据,在减少了数据处理的复杂性的同时,提高了数据利用率,为企业提供了更灵活、高效和安全的方式来处理数据,可促进数据驱动的决策和业务发展,助力企业降本增效。