第一章 使用 SQL 网关访问数据库

文章目录

  • 第一章 使用 SQL 网关访问数据库 - IRIS SQL 网关的架构
  • `IRIS SQL` 网关的架构
    • 在 `IRIS` 中保留外部表
  • # SQL 网关查询的限制

第一章 使用 SQL 网关访问数据库 - IRIS SQL 网关的架构

SQL 网关连接用于以编程方式或作为互操作性功能的一部分访问由链接表向导和链接过程向导(分别)创建的远程表和过程。 SQL 网关定义中捕获的信息还可用于创建外部表,这是一种将数据从远程数据库或文件投影到 IRIS SQL 的纯 SQL 方法。

IRIS SQL 网关的架构

在内部, SQL 网关使用以下组件:

  • 连接管理器维护 IRIS 的逻辑连接定义列表。每个定义都有一个在 IRIS 中使用的逻辑名称,以及特定外部 ODBCJDBC 兼容数据库的连接详细信息。 SQL 网关在建立连接时使用这些逻辑名称。
  • SQL Gateway APIIRIS 程序用来与第三方 RDBMS 进行通信的一组函数。这些功能通过共享库来实现,该共享库负责进行 ODBCJDBC 调用。
  • 外部表查询处理器是 SQL 查询处理器的扩展,用于处理针对外部表的查询。
  • SQL 字典存储所有定义的 SQL 表的列表。当给定表的数据存储在第三方 RDBMS 中时,该表被标记为“外部”。当 SQL 查询处理器检测到 SQL 查询中引用的表(或多个表)是外部表时,它会调用外部表查询处理器,该处理器通过调用 SQL Gateway API 生成查询执行计划,而不是访问 IRIS 中存储的数据。

IRIS 中保留外部表

IRIS 中的所有对象持久性都是通过存储类提供的,它生成在数据库中保存和检索持久性对象所需的代码。 SQL 存储类 (%Storage.SQL) 通过专门生成的 SQL 查询来提供对象持久性。

使用 %Storage.SQL 进行持久化的类通过为其 CONNECTIONEXTERNATABLENAME 类参数提供值来指示它是“外部”类。类编译器为类创建 SQL 表定义,并为对象持久性代码生成 SQL 查询。这些查询通过外部表查询处理器自动调用正确的外部数据库。

# SQL 网关查询的限制

使用 SQL 网关时,请注意以下限制:

  • ODBC 连接支持连接来自异构数据源的数据的查询。使用 JDBC 时,SQL 查询的 FROM 子句中列出的所有表必须来自同一数据源。
  • 针对外部数据库的 SQL 查询不能使用以下 SQL 扩展:
    • The "->" operator.
    • %EXACT 函数或 %SYSTEM.Util.Collation()开方法,并将排序规则标志设置为 EXACT
    • 在计数 (*) 查询中包含其他列。
    • IRIS 特定运算符,其名称的第一个字符为 %

你可能感兴趣的:(使用SQL网关,数据库,sql,java)