#InterSystems IRIS

0 关注者 · 938 帖子

InterSystems IRIS 是一个完整的数据平台
InterSystems IRIS 为您提供了捕获、共享、理解组织最宝贵的资产(数据)并采取相应行动所需的一切。
作为一个完整的平台,InterSystems IRIS 不需要集成多种开发技术。应用程序需要更少的代码、更少的系统资源和更少的维护。

文章 Jeff Liu · 一月 26 6m read

InterSystems IRIS 提供广泛的可配置安全选项,但许多开发人员主要使用角色和资源来保护整个表或例程。今天,我们将深入探讨。我们也可以分别确保单个列和行的安全,但这两种机制的操作方式截然不同。让我们从列开始。

列安全

为便于测试和演示,我们将保持表结构简洁明了。我们在 USER 名称空间中有一个名为 "Person "的表,其中包含 ID 列、出生日期列 (DOB)、名和姓。

0
0 100
文章 Kelly Huang · 一月 25 4m read

在上一篇文章中,我们谈到了 ODBC 和 C# 连接,现在让我们看看 JDBC 和 Java。InterSystems JDBC 驱动程序是集成 Java 应用程序的高性能推荐方式。

以下是使用 JDBC 驱动程序将 Java 应用程序连接到 IRIS 实例的分步指南。

第 1 步:获取并包含 InterSystems IRIS JDBC 驱动程序

JDBC 驱动程序与 ODBC 驱动程序不同,后者通常安装在整个系统中,而 JDBC 驱动程序通常以JAR 文件的形式发布,必须包含在 Java 项目的类路径中。

如果 InterSystems IRIS 安装在本地计算机或您可以访问的其他计算机上,您可以在 install-dir/dev/java/lib/ 或类似位置找到该文件,其中 install-dir 是实例的安装目录。反之,您也可以从驱动程序软件包页面下载 jar 文件。

或者按照 @Dmitry Maslennikov 在评论中的建议 ,使用 Maven 的maven 中央仓库

<dependency>
    <groupId>com.intersystems</groupId>
    <artifactId>intersystems-jdbc</artifactId>
    <version>3.10.5</version>
</dependency>

或 Gradle:

implementation("com.intersystems:intersystems-jdbc:3.10.5")

在项目中包含 jar 文件:

  • Maven/Gradle:如果使用构建工具,最简单的方法是将 InterSystems JDBC 驱动程序作为依赖项添加到 pom.xmlbuild.gradle 文件中。这会自动下载并管理 JAR。
  • 手册:对于简单的项目,必须将 JAR 文件放在项目目录(如 /lib)中,并在编译和运行时将其明确添加到 classpath 中。
0
0 36
文章 Kelly Huang · 一月 24 4m read

对于构建外部应用程序的开发人员,尤其是使用C# 等熟悉技术的开发人员来说,ODBC(开放数据库连接)是连接任何关系数据库(包括 InterSystems IRIS)的重要标准化桥梁。虽然 InterSystems 提供了自己的本地 ADO.NET 提供商,但 ODBC 驱动程序通常是与通用数据库工具和框架集成的最直接途径。

以下是使用 ODBC 驱动程序将 C# 应用程序连接到 IRIS 实例的分步指南,重点是无 DSN 连接字符串。

第 1 步:安装 InterSystems IRIS ODBC 驱动程序

在 Windows 机器上安装 InterSystems IRIS 时,默认会安装 InterSystems ODBC 驱动程序。

  • 如果 IRIS 位于同一台计算机上:驱动程序已经存在。
  • 如果 IRIS 位于远程服务器上:如果您是客户机,则必须从 WRC 网站下载并安装适用于客户机操作系统(Windows、Linux 或 macOS)和位元(32 位或 64 位)的独立 ODBC 客户机驱动程序包,或者安装客户机组件并复制 ODBC 驱动程序。

安装完成后,可在 Windows 的ODBC 数据源管理员(ODBC Data Source Administrator)工具中验证其是否存在(查找 InterSystems IRIS ODBC35 驱动程序)。

0
0 78
文章 Nicky Zhu · 一月 20 3m read

不可避免的是,您最终需要将您的代码从一个版本的 IRIS 或 Cache 升级到最新版本的 IRIS。在这一过程中,您可以采取一些好的步骤来为自己的成功做好准备。

仔细阅读文档

在迁移任何代码之前,你应该先查看IRIS 文档页面,其中包含许多关于IRIS不同版本变更的有用资源。如果你需要跨多个版本升级,请查阅所有相关版本的文档,而不仅仅是目标升级版本。对于每个版本,点击“维护版本变更”(Maintenance Release Changes)链接,你将看到一份开发人员升级清单,对指导你需要进行的修改非常有帮助。你还应查看“发布说明”(Release Notes),其中列出了可能对你有用的新功能,以及已被弃用的功能。此外,建议访问“产品新闻与警报”(Product News and Alerts)页面,以获取最新的紧急事项。事实上,即使不进行升级,定期查看该页面或订阅警报通知也是个好主意,以便及时了解变更。

了解你的替代方案

根据你在文档中阅读到的内容,你可能会看到一堆问题。不过,在开始处理这些问题之前,您应该花些时间了解一下有哪些替代方案。如果您喜欢使用的特定 ObjectScript 类已被弃用或移除,那么如果您打算使用集成的 Python,就不要只寻找 ObjectScript 的替代品。如果您是 Zen 报表的用户,InterSystems Reports 就是该工具的替代品。

0
0 61
公告 Jeff Liu · 一月 19

互操作性用户界面项目从 2025.1 版继续 进行,并纳入了许多我们的客户和合作伙伴建议和观察到的项目。 我们将继续投资于反馈和更新这一重要的用户体验。在最新发布的 2025.3 版(适用于 IRISIRIS for HealthHealthConnect 和 Health Connect Cloud) DTL 编辑器生产配置 应用程序可选择
NOTE

  • 您可以在现代化和标准体验之间切换。
  • 所有其他互操作性屏幕仍保留在标准用户界面中。
  • 由于新的用户界面将提供新的工作流程,我们希望在这项工作继续进行的同时提供两种体验。
生产配置——配置任务介绍
  • 现在每个生产配置主机上都会显示池大小 数量。
  • 现在可以在主机的类别字段中直接输入命名约定来创建新类别
  • 生产配置中现在支持浏览器级控制查找
  • 生产配置主机项目现在具有测试主机功能
  • 在新的 "设置面板 "中,出现了 X 取消图标以取消操作。
  • 较长的类工具提示 说明根据类文档格式化。

      • 增强了配置项描述的显示,以尊重较长结构化描述的标记。
  • 如果不在主机项目或生产的上下文中,操作项目会显示为灰色
  • 创建主机时可自动创建路由器和角色。
  • 在支持的情况下,现在可以选择更新和恢复生产
  • 现在可以 通过新的用户界面创建产品
  • 编辑主机类别时,允许查看连接
0
0 76
公告 Claire Zheng · 一月 19

大家好,社区成员们:

对于刚接触InterSystems IRIS的开发者而言,这有个好消息!我们现已在Instruqt平台上推出了实操互动教程!这些教程非常适合希望快速上手、在真实环境中演练,并建立对基于IRIS的开发信心的开发者。(译者注:国内需要🪜)

以下是可用教程列表:

0
0 49
InterSystems 官方 Claire Zheng · 十二月 30, 2025

概述

25.24.1 版对 DNS 功能、平台可靠性、升级工作流和开发人员体验进行了重大增强。该版本还包括关键修复和平台限制的增加,以更好地支持现代工作负载。


新功能和增强功能








类别

功能/改进

详细信息

网络 - DNS DNS 映射(静态 DNS 支持) DNS 支持从仅转发扩展到完整的 DNS 映射,允许创建和管理静态 DNS 条目,以提高服务发现和配置的灵活性。
可靠性和恢复能力 增强的自愈检查 改进了内部自愈验证例程,能够更快地恢复和更精确地检测运行异常。
高级安全性 改进的子网计算 增强了子网验证和计算逻辑,减少了配置错误,确保在不同部署中实现一致的网络分段。
升级和更新流程 改进 HCC 和 IRIS 托管服务 简化和强化了 Health Connect Cloud 和 IRIS 托管服务的升级/更新工作流,提高了可靠性和自动化准确性。
DNS 修复 DNS 别名错误修复 修复了 DNS 别名在特定配置中无法正确应用或传播的问题。
网络服务器 最大有效负载增至 200 MB 允许的最大有效载荷大小从 10 MB 增加到 200 MB,支持更大的上传和更复杂的 API 交互。
开发人员工具 InterSystems Data Studio 默认版本 1.
0
0 170
InterSystems 官方 Claire Zheng · 十二月 30, 2025

概述

25.23.2 版对高级安全用户界面进行了有针对性的改进,并进一步简化了 InterSystems 云产品的升级和更新工作流程。这些更改重点关注清晰度、效率和卓越运营。


新功能和增强功能





类别 功能/改进 详细信息
高级安全性 增强应用程序可见性的用户界面 更新后的界面提供了更清晰、更直观的应用程序映射,提高了对安全边界、相关策略和受保护资源的理解。
升级和更新 优化的升级/更新流程 增强的升级/更新管道缩短了执行时间,最大限度地减少了维护窗口,提高了计划运行期间的整体系统可用性。

建议采取的行动

  • 查看更新后的高级安全用户界面,让您的团队熟悉改进后的应用程序表示方法。

支持

有关此版本的更多信息或帮助,请通过 iService 或云服务门户联系 InterSystems 云服务支持。

0
0 85
InterSystems 官方 Claire Zheng · 十二月 29, 2025

概述

本版本对存储的可扩展性和性能进行了重大改进,对所有产品的操作系统进行了重大升级,并推出了新的 FHIR 服务器默认版本。这些更新共同增强了系统的可靠性、灵活性和安全性,同时确保了平台的长期可支持性。


新功能和增强功能






类别

功能/改进

详细信息

存储 增强的 LVM 支持(条带或线性) 增加了对 LVM 配置的支持,允许使用条带式或线性卷布局进行部署,以提高性能和灵活性。
  选择使用 LVM 配置 客户现在可以在配置过程中选择使用基于 LVM 的存储,从而更好地控制卷管理和数据布局。
  扩大最大存储限制 每个部署支持的最大存储容量增至8 PB,可支持大规模数据工作负载和长期增长。
操作系统 Red Hat Enterprise Linux 9.6 升级 所有 InterSystems 云产品都从 RHEL 9.0 升级到了RHEL 9.6,提供了更好的内核性能、更强的安全性和更长的生命周期支持。
FHIR 服务器 默认版本 2025.11.0

FHIR Server2025.11.0 现在是所有新部署的默认版本,在可扩展性、互操作性和数据管理方面都有改进。

有关详细信息,请参阅 FHIR Server 2025.11.0 发行说明。

0
0 67
InterSystems 官方 Claire Zheng · 十二月 29, 2025

概述

25.20.2 版扩展了全球可用性,提高了高级安全灵活性,并扩大了网络连接集成。该版本引入了对更多地区的支持、新的应用程序感知安全规则,以及针对关键 InterSystems 服务的更多连接选项。


新功能和增强功能






类别

功能/改进

详细信息

高级安全性 支持消息库规则 高级安全功能现在可以应用专门针对消息库的策略和规则,从而为消息存档和分析管道提供更精细的保护。
  多应用规则支持 现在可以对规则进行配置,使其同时适用于多个应用,从而减少重复配置,简化策略管理。
网络连接 支持 TGW 对等互联 现在支持中转网关 (TGW) 对等互联,实现了可扩展的多区域和多 VPC 连接,降低了复杂性并改进了流量控制。
  支持 FHIR 服务器 针对 FHIR Server 的本机 Network Connect 集成,改进了路由管理、网络可见性和集成工作流。
  支持数据工作室(供应链模块) 供应链模块增加了对 InterSystems Data Fabric Studio 的支持,实现了与客户网络拓扑的无缝集成。
0
0 55
文章 Jeff Liu · 十二月 28, 2025 5m read

InterSystems Ideas 门户网站上得票最多的想法-——获得 74 票——要求提供一个轻量级版本的 IRIS。虽然该平台已发展成为一个强大的数据引擎,但许多项目只需要其 SQL 数据库功能。本文演示了如何构建一个非官方的、紧凑的 IRIS 社区版镜像,该镜像只关注核心数据库功能,将镜像大小缩小了 80% 以上。

⚠️ 免责声明

本项目生成的是 InterSystems IRIS Community Edition 的非官方实验镜像

  • 不受InterSystems支持或认可
  • 使用风险自负。这些修改删除了核心平台功能,可能会破坏与工具、API 和预期行为的兼容性。
  • 提供任何担保或保证,包括对生产使用的适用性。
  • 仅供高级用户用于教育和实验目的

为什么选择轻量级 IRIS?

虽然 IRIS 目前包含丰富的互操作性、分析、机器学习、系统管理等功能,但许多项目只需要其核心 SQL 功能。官方社区版 Docker 镜像约为

  • 磁盘使用量3.5-3.8 GB
  • 压缩后大小:~1.1 GB

IRIS Light 可将其减少到

  • 磁盘使用量~575-583 MB
  • 压缩后大小:~144-148 MB

因此适用于

  • 微服务或容器化 SQL 使用
  • 具有更快启动和拉动速度的 CI 管道
  • 无需完整功能的横向扩展
0
0 46
文章 Jeff Liu · 十二月 27, 2025 1m read

InterSystems 常见问题

使用 %Library.Global 类的 Export() 方法导出时,如果导出格式(第四个参数:OutputFormat)设置为 7,即 "块格式(Block format)/Caché 块格式 (%GOF)",则无法导出映射的Global项(只能导出命名空间默认Global数据库中的Global项)。要导出 "块格式/Caché 块格式 (%GOF) "的映射Global项,请在 %Library.Global.Export() 的第一个参数中指定要映射Global项的数据库目录。

执行示例如下。

set DB = "^^c:\InterSystems\Cache\Mgr\Test\" ; "^^\<path to database folder>\"
set sc = ##class(%Library.Global).Export(DB, "TESTGBL.gbl",FULLPATH,7,,")

如果将导出格式指定为 5(默认),即 "ISM/ObjectScript 格式(ISM/缓存格式)(*)",则也可以导出映射Global,但输出文件会比将导出格式(第四个参数:OutputFormat)设置为 7(即 "块格式/Caché 块格式(%GOF)")时大。

此外,如果在Global中记录了二进制数据,也无法正确输出。

更多信息,请参阅以下文档。

0
0 159
文章 Nicky Zhu · 十二月 25, 2025 4m read

当我开始使用 InterSystems IRIS,尤其是在互操作性方面时,我最初遇到的一个常见问题是:如何在间隔时间或计划内运行某项功能?在本专题中,我想分享两个简单的类来解决这个问题。我很惊讶在 EnsLib 的某个地方没有找到类似的类。也许是我搜索得不好?总之,这个主题并不意味着是复杂的工作,只是为初学者提供了几个片段。

0
0 102
文章 Nicky Zhu · 十二月 23, 2025 5m read

什么是 JWT?

JWT (JSON Web Token,JSON 网络令牌)是一种开放标准(RFC 7519),它提供了一种轻量级、紧凑、自足的方法,用于在双方之间安全地传输信息。它常用于网络应用程序中的身份验证、授权和信息交换。

JWT 通常由三部分组成:

1.JOSE(JSON Object Signing and Encryption,JSON 对象签名和加密)标头
2.有效载荷
3.签名

这些部分以 Base64Url 格式编码,并用点(.)分隔。

JWT 的结构

标题

{ "alg": "HS256", "typ": "JWT"}

有效载荷

{"sub": "1234567890", "name": "John Doe", "iat": 1516239022}

签名
签名用于验证 JWT 的发件人是否为其本人,并确保信息未被篡改。

创建签名

1. base64 编码报头和有效载荷。
2.使用秘钥(对于对称算法,如 HMAC)或私钥(对于非对称算法,如 RSA)应用签名算法(如 HMAC SHA256 或 RSA)。
3.对结果进行 Base64Url 编码,以获得签名。

JWT 样本。查看JWT 内容

eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.
0
0 158
文章 Lilian Huang · 十二月 8, 2025 10m read

什么是 XML?

XML (可扩展标记语言)是一种灵活的、基于文本的、独立于平台的格式,用于以结构合理 、人机可读的方式存储和传输数据 。XML 允许用户定义自定义标签来描述数据的含义和组织结构。例如:<book><title>The Hitchhiker's Guide</title></book>.

XML 文档具有自描述性,其结构是一棵分层的元素树。每个文档都有一个封装所有其他内容的根元素。元素可以包含文本、子元素和属性(提供补充信息的名-值对)。这些文档通常用 .xml 文件存储

这种结构的完整性可以通过以下方式实现:

  • DTD(文档类型定义):提供基本的验证规则。
  • XSD(XML 模式定义):提供高级规则,包括数据类型和约束。

转换 XML 文档

这部分内容介绍如下:

  1. 解析一般 XML 并将其转换为 HL7 标准。
  2. 解析 CCDA(综合临床文档架构)文档(XML)并将其转换为 HL7 格式。

在这些实施过程中,两种格式都会首先转换为 InterSystems IRIS SDA(标准化数据架构)格式。这被认为是一种标准、高效、不易出错的方法,因为它有效地利用了平台的 预置类。数据采用 SDA 格式后,可无缝转换为任何目标标准,如 HL7 v2FHIRCCDA

0
0 131
InterSystems 官方 Claire Zheng · 十二月 2, 2025

大家好!

我很高兴地宣布,自今年年初以来,我们已将 InterSystems IRIS、InterSystems IRIS for Health 和 Health Connect 的许多客户端 SDK 发布到相应的外部存储库(Maven、NuGet、npm 和 PyPI)中。这将为您带来许多好处,例如:

  • 您可以在客户端 SDK 发布后立即访问其最新版本,而不受 InterSystems IRIS 发布周期的影响。
  • 您可以将 SDK 作为依赖项与生态系统中的本地软件包管理器工具集成,并以行业标准的方式管理依赖项
  • 终端用户可直接访问 SDK,例如,当他们希望通过 DBeaver 等 SQL 工具直接访问数据库层时。
  • 您可以发布依赖于 InterSystems 客户端 SDK 的项目,而无需将其直接包含在您的项目中。

以下是我们目前已发布的客户端 SDK 的列表,以及最新版本的相应版本号和查找位置:

Java

0
0 72
公告 Claire Zheng · 十二月 1, 2025

我们非常高兴地宣布, IntegratedML Custom Models(集成式机器学习自定义模型)抢先体验计划即将开启,这是 IRIS 2026.1 版本中即将推出的一项强大新功能!

这是什么?

IntegratedML Custom Model扩展了现有的IntegratedML/AutoML(集成式机器学习/自动化机器学习)功能,支持您直接在 SQL 查询中部署自己的自定义 Python 机器学习模型。IntegratedML AutoML功能提供自动化机器学习服务,而Custom Model(自定义模型)则赋予您完全的控制权——自定义预处理、任意与 scikit-learn 兼容的模型,以及 Prophet 或 LightGBM 等第三方库——所有操作均在数据库内执行,无需数据移动。

为什么这很重要

  • 完全掌控:编写自定义预处理、特征工程和模型训练逻辑。
  • 熟悉的 SQL 界面:使用熟悉的 CREATE MODEL、TRAIN MODEL 和 PREDICT() 命令。
  • 数据库内执行:无需数据导出/导入循环,对实时数据进行实时预测。
  • 与AutoML协同工作:针对每个用例使用合适的工具——自动化机器学习用于快速建模,自定义模型用于高级场景。
0
0 82
文章 Nicky Zhu · 十一月 26, 2025 4m read

您检查了服务器,发现IRISTEMP 增长过快。不必惊慌。让我们在存储空间耗尽之前调查一下这个问题

步骤 1:确认 IRISTEMP 增长问题

在假设 IRISTEMP 是问题所在之前,让我们先检查一下它的实际大小。

检查可用空间

IRIS 终端运行以下命令:

%SYS>do ^%FREECNT

出现提示时,输入

Database directory to show free space for (*=All)? /<your_iris_directory>/mgr/iristemp/

如果输出结果显示可用空间非常小,则IRISTEMP 正在像拥挤的壁橱一样占满您的存储空间。但是,如果可用空间没有问题,但 IRISTEMP 数据库文件 (IRIS.DAT) 仍然很大(这可能就是你来这里的原因),这意味着临时数据已经被清理。在这种情况下,你的任务就是密切关注,按照下面的步骤在下一次行动中抓住它,并恢复宝贵的空间。

第 2 步:确定 IRISTEMP 的用途

运行 ^%GSIZE 查找大型全局文件

%SYS>do ^%GSIZE

按照提示操作:

Directory name: /<your_iris_dir>/mgr/iristemp/

All Globals?
0
0 116
公告 Jeff Liu · 十一月 25, 2025

回顾上一季度,报告中着重强调了几项对本季度报告仍具现实意义的重要进展。

  • 从 2025.3 开始,OpenSSL 3将成为所有支持平台的标准配置;SUSE 15 sp6 成为使用 SUSE 的组织所需的操作系统。
  • 修订后的最低 CPU 规格将在 2025.3 中生效。
  • 2025.3 版本将不支持Windows Server 2016

对于初次接触这些资讯的人而言,本次更新将基于当前信息,详细介绍近期所做的改进以及预期的变更;不过,未来预测仍存在不确定性,因此内容不应被解读为确定性的产品路线图。

InterSystems IRIS 生产操作系统和 CPU 架构

最低支持的CPU架构

2024 年,InterSystems 为所有基于英特尔和 AMD 的服务器引入了最低支持的 CPU 架构,使我们能够利用新的 CPU 指令创建速度更快的 IRIS 版本。IRIS 2025.3将更新该列表,要求采用 x86-64-v3 微架构级别,这需要 AVX、AVX2、BMI 和 BMI2 指令。

  • 对于使用英特尔系统的用户,这意味着需要使用 Haswell 及以上版本。
  • 对于使用 AMD 系统的用户,这意味着需要使用 Excavator 及以上版本,不支持 Piledriver 和 Steamroller版本。

您是否想知道您的 CPU 是否仍受支持?

0
0 115
InterSystems 官方 Claire Zheng · 十一月 24, 2025

InterSystems IRIS® 数据平台、InterSystems IRIS® data platform, InterSystems IRIS® for HealthTMHealthShare® Health Connect 2025.3 版本现已全面发布 (GA)。这是一个持续交付 (CD) 版本。

版本亮点:

  • 安全钱包: 用于管理敏感数据的新加密框架,建立在 IRISSECURITY 数据库上,提高了系统安全性和访问控制。
  • 扩展的可观察性和云集成:增强的 OpenTelemetry 指标,包括新增的进程指标和 ECP 指标,此外,日志存档现在支持使用 Azure Blob 存储,以实现经济高效的留存。
  • 数据和人工智能改进:外部表现在支持JOIN下推功能,以提升SQL性能;同时,向量搜索的HNSW索引已升级,可实现更快、更稳健的相似性搜索。
  • 医疗保健增强功能:改进了 FHIR 批量数据访问和身份验证功能。
  • 开发人员和用户界面更新: 互操作性用户界面增加了批量管理操作,扩大了生产配置中的搜索范围,提高了大规模生产的可用性,强化了现代化的用户体验。

请通过开发者社区分享您的反馈意见,以便我们共同打造更好的产品。

文档

有关所有重点功能的详细信息,请访问以下链接:

0
0 58
文章 Lilian Huang · 十一月 23, 2025 10m read

现代数据架构利用实时数据捕获、转换、移动和加载解决方案来构建数据湖、分析仓库和大数据存储库。它能够分析来自不同来源的数据,而不会影响使用这些数据的操作。要实现这一目标,必须建立连续、可扩展、弹性和稳健的数据流。最常用的方法是 CDC(变更数据捕获)技术。CDC 监控小型数据集的生产,自动捕获这些数据,并将其传送到一个或多个接收方,包括分析数据存储库。这样做的主要好处是消除了分析中的 D+1 延迟,因为数据一产生就会在源端被检测到,随后被复制到目的地。

本文将展示 CDC 场景中最常见的两种数据源,既可以是源数据源,也可以是目的地数据源。对于数据源(origin),我们将探讨 SQL 数据库和 CSV 文件中的 CDC。对于数据目的地,我们将使用列式数据库(典型的高性能分析数据库场景)和 Kafka 主题(将数据流传输到云和/或多个实时数据消费者的标准方法)。

概述

本文将为以下互操作场景提供一个示例:

0
0 148
文章 Nicky Zhu · 十一月 20, 2025 4m read

InterSystems IRIS中的窗口函数(Window Functions)可让您直接在SQL中执行强大的分析操作,例如累计总和、排名和移动平均值等。 这些函数针对与当前行相关的一组行(即“窗口”)进行操作,且不会像 GROUP BY那样合并结果。 这意味着您可以编写更简洁、更快速且更易于维护的查询——无需循环、无需连接、无需临时表。 在本文中,我们将通过处理一些常见的数据分析任务来了解窗口函数的作用机制。


InterSystems IRIS中的SQL窗口函数入门

SQL窗口函数(SQL window functions)是数据分析的强大工具。 它们允许你在保留各行列可见性的同时,跨行计算聚合值和排名。 无论你是在构建仪表盘、报表还是进行复杂分析,窗口函数都能简化你的逻辑并提升性能。

注:我并非窗口函数领域的专家,但我愿意分享助我理解窗口函数的心得体会和相关资源。非常欢迎大家提出建议或进行指正!


🚀 为什么窗口函数这么重要

你是否曾为了计算累计总和、排名或行间差值,而编写过多条SQL查询语句,甚至使用过程化循环?

窗口函数能让你仅通过一条SQL查询语句就实现所有这些操作。

它们将强大的分析功能直接融入SQL——无需额外连接操作、无需临时表,也无需过程化循环。


🧠 什么是窗口函数

窗口函数会针对一组与当前行存在某种关联的行进行计算——这组行被称为窗口(window)

0
0 71
文章 Jeff Liu · 十一月 19, 2025 3m read

本文第一部分提供了所有背景信息。其中还包括DATATYPE_SAMPLE数据库的链接,您可以使用该链接来跟进示例。

在该部分中,我们探讨了一种易于检测的错误类型(""Access Failure【访问失败】") ,因为当尝试通过数据库驱动程序读取数据时,它会立即触发一条明确的错误消息。

本节讨论的错误更为隐蔽,也更难发现。我将它们称为"静默损坏(Silent Corruption""未检测到的数据变异(Undetected Mutation"

让我们从"静默损坏(Silent Corruption"开始:
DATATYPE_SAMPLE数据库的 "雇员(Employee "表中,有一条被故意篡改的记录可以证明这种行为--它就是ID = 110 的记录。 乍一看,甚至再看一眼,都看不出任何问题。无论是数据库驱动程序还是查询工具,都没有显示读取该记录有问题。

只有仔细观察才会发现,红色标记单元格中的值与传输(和定义)的元数据不符。

"名称Name)"列被定义为VARCHAR(50),但实际值为60 个字符

在某些情况下,这种行为不会造成任何问题——例如,当驱动程序宽松地处理这种不一致时。
但是,当下游系统依赖于所提供的元数据时,问题就会出现。如果根据这些元数据定义进行进一步处理,当实际内容与约定的接口不一致时,就可能出现错误。

0
0 92
InterSystems 官方 Claire Zheng · 十一月 18, 2025

概述

该版本引入了FHIR Server 2025.10.0,该版本遵循最新标准并实现了性能提升。它还增强了Health Connect Cloud(HCC)升级流程,提高了其可靠性,并通过在 VPN 配置中支持前缀列表为Network Connect增加了新的灵活性。


新功能和增强功能






类别

功能/改进

详细信息

FHIR Server

发布 FHIR 服务器 2025.10.0

推出 InterSystems FHIR Server 的最新版本,具有更高的可扩展性、更强的 FHIR R5 一致性以及对批量数据交换的优化。

Health Connect Cloud

升级流程改进

简化和强化了 HCC 部署的升级工作流程,缩短了维护窗口持续时间,提高了回滚安全性和自动化准确性。

Network Connect

静态 VPN 导入支持前缀列表

静态 VPN 导入任务现在支持 AWS 前缀列表,简化了路由管理,使客户环境中的网络配置更加动态和一致。


推荐操作

此版本无建议操作。


支持

如需帮助或了解有关这些更新的更多信息,请通过 iService 或 InterSystems 云服务门户(InterSystems Cloud Service Portal)提交支持请求。

0
0 71
InterSystems 官方 Claire Zheng · 十一月 17, 2025

InterSystems IRIS Adaptive Analytics(自适应分析)2025.4.1 版本现已通过InterSystems 软件分发页面发布。 该版本集成 AtScale 2025.4.1,并兼容现有自适应分析用户自定义聚合函数(User-Defined Aggregate Function,UDAF)文件(2024.1 版本)。

AtSCale 2025 版本包含的新功能包括:

如需了解 AtScale 2025.4.1 的更多详细信息,请参阅版本发布说明

如需了解 Adaptive Analytics 的更多信息,请参阅 InterSystems 官方文档 和 Learning Service 中的内容。

0
0 124
文章 Jeff Liu · 十一月 13, 2025 4m read

在使用标准 SQL 或 InterSystems IRIS 中的对象层时,元数据的一致性通常通过内置验证和类型执行来保持。但是,绕过这些层直接访问global的传统系统会带来微妙而严重的不一致性。

了解驱动程序在这些边缘情况下的行为,对于诊断遗留数据问题和确保应用可靠性至关重要。
DATATYPE_SAMPLE数据库旨在帮助分析列值不符合元数据中定义的数据类型或约束的错误情形。我们的目标是评估 InterSystems IRIS 及其驱动程序(JDBC、ODBC、.NET)和不同工具在发生此类不一致时的表现。 在本篇文章中,我将重点介绍JDBC 驱动程序


问题出在哪里?

一些传统应用程序会直接写入globals。如果使用关系模型(通过 CREATE TABLE 创建或使用全局映射手动定义)来公开这些数据,那么映射定义 的底层值就会与每列的声明元数据一致。

当这一假设被打破时,可能会出现不同类型的问题:

  1. 访问失败(Access Failure:根本无法读取某个值,当驱动程序尝试访问该值时会抛出异常。
  2. 静默损坏(Silent Corruption:值已成功读取,但与预期的元数据不匹配
  3. 未检测到的数据变异(Undetected Mutation:该值被读取且看似有效,但被驱动程序悄然修改以符合元数据要求,这使得这种不一致性难以被察觉。
0
0 65
文章 Kelly Huang · 十一月 11, 2025 5m read

导言

InterSystems IRIS 数据平台一直以其性能、互操作性和跨编程语言的灵活性而著称。多年来,开发人员可以将 IRIS 与 Python、Java、JavaScript 和 .NET 结合使用,但 Go(或Golang)开发人员却只能望洋兴叹。

Golang Logo

这种等待终于结束了。

新的go-irisnative驱动程序为 InterSystems IRIS 带来了GoLang 支持,实现了标准的 database/sql API。这意味着 Go 开发人员现在可以使用熟悉的数据库工具、连接池和查询接口来构建由 IRIS 支持的应用程序。


为什么要支持 GoLang

GoLang 是一种专为简单性、并发性和性能而设计的语言,是云原生和基于微服务架构的理想选择。它为 Kubernetes、Docker 和 Terraform 等一些世界上最具可扩展性的系统提供了支持。

将 IRIS 引入 Go 生态系统可实现以下目标

  • 使用 IRIS 作为后台的轻量级高性能服务
  • 并行查询执行或后台处理的本机并发性
  • 与容器化和分布式系统无缝集成
  • 通过 Go 的 database/sql 界面进行自动化数据库访问

这种集成使 IRIS 成为现代云就绪 Go 应用程序的完美选择。

0
0 91
文章 Kelly Huang · 十一月 11, 2025 3m read

如果你觉得 IRIS 对 Go 的原生支持令人兴奋,那就等着看 GORM 加入后会发生什么吧。


就在最近,随着go-irisnative 的发布,我们迎来了 InterSystems IRIS 的本地 GoLang 支持这仅仅是个开始。现在,我们又推出了gorm-iris ——一个 GORM 驱动程序,旨在为您的 IRIS + Go 堆栈带来对象关系映射 (ORM) 的强大功能。

为什么选择 GORM?

GORM 是 Go 生态系统中最流行的 ORM 库之一。它使使用 Go 结构而不是编写原始 SQL 与数据库交互变得简单。通过自动迁移、关联和查询构建等功能,GORM 极大地简化了后端开发。

因此,在实现 Go 与 IRIS 的本地对话后,下一步自然是让 GORM 与 IRIS 无缝协作。这正是 gorm-iris 所要做的。

0
0 67