跳到主要内容

NineData DSQL

NineData DSQL 支持从多个不同类型的数据源中查询数据,并聚合生成全局查询结果,本文介绍如何使用 NineData DSQL。

背景信息

随着企业数据量呈现出爆炸式增长,跨部门、跨应用、跨平台的数据交互需求越来越频繁,传统的数据查询方式已经难以满足这些需求。同时,不同数据库系统之间的数据格式、存储方式、查询语言等都存在差异,直接进行跨库查询十分困难。因此,NineData DSQL 应运而生。

什么是 NineData DSQL ?

NineData DSQL 是针对多个异构或同构数据库系统进行跨库查询的方式,您可以在一个查询中访问多个数据库,获取分散在各个数据库中的有用信息,并且将这些信息聚合为一份查询结果返回,轻松实现跨多个库、多个数据源,乃至跨多个异构数据源的数据查询。

NineData 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 ,企业可以在一个查询中访问多个数据库,获取分散在各个数据库中的有用信息,然后将其整合在一起,方便数据分析和决策。
  • 数据挖掘与分析:数据挖掘和分析需要大量的数据支持。通过 DSQL ,您可以在多个数据库中检索需要的数据,然后使用挖掘和分析工具对数据进行深入的研究和分析。
  • 元数据管理:元数据是数据的数据,对于数据的管理和理解非常重要。通过 DSQL ,您可以检索多个数据库中的元数据,从而更好地理解数据的分布、内容和关系。
  • 数据仓库:数据仓库是用于存储和管理大量数据的系统。通过 DSQL ,您可以在数据仓库中查询和检索需要的数据,然后进行进一步的分析和处理。
  • 购物网站:购物网站通常需要跨多个数据库进行查询,以获取用户的购物车信息、订单信息、账户信息等。通过 DSQL ,您可以在一个查询中访问多个数据库,获取所需的信息,提高查询效率。

前提条件

  • 已创建或加入组织,并且该组织已开通 ,同时请确保您的包年包月订阅未过期。更多信息,请参见管理组织
  • 当前账号已切换到目标组织。更多信息,请参见切换到组织
  • 您使用的数据源为 MySQL、Oracle、OceanBase Oracle。
  • 您已将需要进行 DSQL 的数据源录入到 NineData 控制台,更多信息,请参见创建数据源

操作步骤

  1. 登录 NineData 控制台

  2. 在左侧导航栏单击 >

  3. 窗口,可对多个数据源执行跨库查询。如下图所示:

    dsql_query

    提示

    如果目标数据源中添加了敏感列,您将无法完整查看敏感列的内容。如需查看,请先申请敏感列权限

    dsql_sensitive_data

  4. 窗口左侧展示当前组织中您有权限查看的所有数据源,供您快捷查询数据源的 DBLINK 名称每个录入到 NineData 的数据源都会自动开启 DSQL 功能,并被赋予默认的 DBLINK 名称,用于通过 DSQL 功能进行跨库查询。默认的 DBLINK 命名规则为 DBLINK_<数据源类型>_<编号>,您可以手动更改 DBLINK 的名称。、库名称、Schema 名称、表名称。

    dsql_dblinks

    更多 DSQL 的使用说明,请参见DSQL 界面说明

DSQL 界面说明

dsql_interface

序号
功能
介绍
1DSQL 窗口页签表示当前已打开的 DSQL 窗口,多个 DSQL 窗口可以通过单击页签切换,单击页签右侧的X可以关闭该 DSQL 窗口(第一个 DSQL 窗口不支持关闭)。右键菜单支持如下操作:
  • :打开一个新的 DSQL 窗口。
  • :关闭当前页签。
2新建 DSQL 窗口打开一个新的 DSQL 窗口。
3功能按钮
  • execute 执行选中的 DSQL 查询语句。
  • setting02
    • :可选
      • (默认):新的结果集将覆盖上一次的执行结果。
      • :生成新的页签展示新的结果集。
    • :更改 DSQL 窗口的主题,可选
    • :拖动滑块调整 DSQL 窗口中 SQL 语句的字体大小,默认值如下:
      • Windows:16
      • MacOS:13
  • more更多选项
    • :调整选中 SQL 语句的结构,增强可读性。
    • :将当前 DSQL 窗口中的所有 SQL 语句保存至 SQL 列表,方便下次使用。
    • :查看已保存的 SQL,您可以将目标 SQL 至当前的 DSQL 窗口中。同时可以目标 SQL。
    • :查看目标数据源的 SQL 的执行历史。您可以选择日期过滤出某个时间段的执行历史,也可以通过关键词(SQL 语句、数据库名称、错误提示)搜索执行历史。
  • expend 将 DSQL 窗口以全屏方式显示(浏览器大小)。全屏后,单击右上角的compress 可以恢复到原始 DSQL 窗口大小。
4DBLink 搜索|过滤|收藏通过如下方式快速定位目标 DBLink(数据源):
  • 搜索:在搜索框中输入 DBLink 名称或数据源名称查找 DBLink。
  • 过滤:通过数据源类型、数据源所属环境筛选 DBLink。
  • 收藏:快速在页签之间切换,找到收藏的 DBLink。
5DBLink 列表显示当前组织中您有权限查看的所有数据源(DBLink)。
  • 将光标置于目标 DBLink 上,单击右侧的Collection图标,收藏该 DBLink。
  • 右键单击 DBLink 名称,执行数据源级别操作:
    • :显示当前数据源的详情信息。
    • :更改当前数据源的 DBLink 名称。
  • 右键单击库名称,执行库级别操作:
    • :显示当前库的详情信息。
    • :自动生成用于创建当前库的 SQL 脚本。
  • 右键单击表名称,执行表级别操作:
    • :查询当前表的前 100 条数据。
    • :显示当前表的详情信息。
    • :自动生成用于创建当前表的 SQL 脚本。
  • 右键单击视图名称,执行视图级别操作:
    • :查询当前视图的前 100 条数据。
    • :自动生成用于创建当前视图的 SQL 脚本。
  • 右键单击任意对象,执行全局操作:
    • :新建一个 DSQL 窗口。
    • :刷新 DBLink 列表。
6DSQL 编辑器支持如下功能:
  • 执行跨库查询:支持单个语句或批量执行。
  • 中断执行:跨库查询执行过程中可以单击中断 SQL 的执行。
  • 语法高亮:以不同颜色显示不同语法元素,提高代码的可读性。
  • SQL 智能提示:输入命令过程中根据您输入的语义自动弹出提示。
  • 右键菜单:
    • :执行光标所在位置的 SQL 语句。
    • :调整选中 SQL 语句的结构,增强可读性。
    • 常规操作:包括
    • :选中光标所在位置的 SQL 语句。
7执行信息、结果集显示 DSQL 的执行信息以及结果集。
  • 执行信息:包含执行时间、执行的 SQL 语句、执行状态、执行耗时等信息。
  • 结果集:显示 DSQL 的返回结果。您可以进行如下操作:
    • 单击upload:支持以多种格式导出数据表,可导出范围为当前页或者全部数据(最多 10000 条)。
    • 单击togglebottom2:将结果集缩放到页面最底部。单击togglebottom1可以恢复。
    • 单击setting02:支持对结果集中的列进行锁定、隐藏、显示等操作。
    • 结果集搜索:支持
    • 单击列名右侧的小箭头,可对结果集进行排序。
    • :右键单击目标单元格,选择,可以复制单元格所在行的整行数据。
    • :右键单击目标单元格,选择,可以复制单元格所在列的整列数据。
    • :右键单击目标单元格,选择,可以复制当前单元格。
    • :右键单击目标单元格,选择,可以选择将单元格所在行的数据复制为多种格式。
    • :右键单击任意单元格,选择,可以将当前结果集以多种格式导出,可导出范围为当前页或者全部数据(最多 10000 条)。
    • 查看结果集对应的 SQL 语句:将鼠标悬浮在目标结果集的页签上,将显示该结果集对应的 SQL 语句。

附录:关闭 DSQL

您在 NineData 控制台中录入的数据源默认开启 DSQL 功能,如果您不再需要该功能,可以手动关闭。

  1. 登录 NineData 控制台
  2. 在左侧导航栏单击>
  3. 在数据源列表中找到需要关闭 DSQL 功能的数据源,单击数据源的 ID。
  4. 页面,单击展开更多的信息。
  5. 找到 选项,单击其右侧的滑块关闭即可。

关闭以后,在 窗口左侧的列表中将不再显示该数据源。