Pesquisar

Artículo
· 19 nov, 2025 Lectura de 3 min

使用 DATATYPE_SAMPLE 数据库测试 InterSystems IRIS 中不一致的元数据(第二部分):静默损坏

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

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

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

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

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

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

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

以下 SQL 查询可用于识别内容偏离已定义元数据的记录:

SELECT
 Name,
 CASE WHEN LENGTH(Name) > 50 THEN 1 ELSE 0 END AS Name_LENGTH_CHECK
,SSN,
 CASE WHEN LENGTH(SSN) > 50 THEN 1 ELSE 0 END AS SSN_LENGTH_CHECK
FROM SQLUser.Employee
WHERE 
      LENGTH(Name) > 50
OR    LENGTH(SSN) > 50

执行此查询后,只会返回包含错误的记录。在每一行中,如果值超过元数据定义的长度,有问题的单元格将被标记为 1

现在我们来看看下一种错误类型:"未检测到的数据变异(Undetected Mutation"。

为了演示这个问题,DATATYPE_SAMPLE数据库中包含了一条专门为说明这种行为而更改的错误记录。

问题记录是ID = 120的记录

同样,在读取这条记录时,数据库驱动程序和查询工具都不会显示问题。

在这种情况下,该值甚至看起来与元数据相匹配!该列定义为INTEGER,该行在该单元格中返回一个整数值(在本例中为:0)。

然而,这个值实际上并没有存储在数据库中!通过操作,一个字符串(STRING)值被注入到这个字段中。

SELECT
 CAST(Age AS VARCHAR(255)) AS Age,
 ISNUMERIC(CAST(Age AS VARCHAR(255))) AS Age_ISNUMERIC
FROM SQLUser.Employee
WHERE
    ISNUMERIC(CAST(Age AS VARCHAR(255))) = 0


如果执行此查询,只会返回包含元数据不一致的行。在每个结果行中,如果值无法被驱动程序解释为数值,则有问题的单元格会被标记为 0

最后的思考

这些情况凸显了看似格式良好的数据如何隐藏着微妙的不一致性——尤其是在绕过标准保障措施的遗留系统中。虽然 "访问失败(Access Failures) "很容易被发现,但"静默损坏(Silent Corruption""未检测到的数据变异(Undetected Mutation"等问题往往会被忽略,却会给下游带来严重问题,尤其是在依赖严格元数据合规性的系统中。

这里分享的DATATYPE_SAMPLE数据库和诊断查询为手动识别此类问题奠定了基础。但是面对现实,手工编写这些检查既繁琐又容易出错。

幸运的是,SQL DATA LENS(最低版本 3.22)使这一过程变得更加简单。 😉 只需单击一下,它就能为表视图存储过程(TablesViews, and Stored Procedures)生成全面的完整性检查,从而节省时间并帮助您提前发现隐藏的数据质量问题。

Comentarios (0)1
Inicie sesión o regístrese para continuar
Anuncio
· 19 nov, 2025

[Video] The Next Leap Beyond Text Generation

Hey Community!

We're happy to share the next video in the "Code to Care" series on our InterSystems Developers YouTube:

⏯  The Next Leap Beyond Text Generation

Watch how AI is transitioning from basic text generation to “agentic AI,” characterized by memory, permissions, reasoning, and the ability to take meaningful actions. Examples include meeting-facilitator agents in collaboration platforms and healthcare orchestrator agents capable of retrieving records, invoking models, and supporting complex clinical decisions. Multi-agent systems that debate diagnoses are also highlighted, demonstrating significantly improved accuracy over individual models or clinicians.

Presenters: 
🗣 @Don Woodlock, Head of Global Healthcare Solutions, InterSystems
🗣 Dr. Peter Lee, President, Microsoft Research

Enjoy watching, and subscribe for more videos! 👍

Comentarios (0)1
Inicie sesión o regístrese para continuar
InterSystems Official
· 19 nov, 2025

InterSystems Announces General Availability of InterSystems IRIS, InterSystems IRIS for Health, and HealthShare Health Connect 2025.3

The 2025.3 release of InterSystems IRIS® data platform, InterSystems IRIS® for HealthTM, and HealthShare® Health Connect is now Generally Available (GA). This is a Continuous Delivery (CD) release.

Release Highlights:

  • Secure Wallet: A new encrypted framework for managing sensitive data, built on the IRISSECURITY database, improving system security and access control.
  • Expanded Observability & Cloud Integrations: Enhanced OpenTelemetry metrics, including new process and ECP metrics, plus journal archiving now supports Azure Blob Storage for cost-efficient retention.
  • Data & AI Improvements: Foreign tables now support JOIN pushdown for better SQL performance, and Vector Search gets an upgraded HNSW index with faster, more robust similarity searches.
  • Healthcare Enhancements: Improved FHIR Bulk Data Access and authentication features.
  • Developer & UI Updates: Interoperability UI gains bulk management actions, expanded search within the Production Configuration, and improved usability for large-scale productions, reinforcing a modernized user experience.

Please share your feedback through the Developer Community so we can build a better product together.

Documentation

Details on all the highlighted features are available through these links below:

In addition, check out the upgrade impact checklist for an easily navigable overview of all changes you need to be aware of when upgrading to this release.

Early Access Programs (EAPs)

If you’re interested in the Early Access Program, you can register here.

Download the Software

As usual, Continuous Delivery (CD) releases come with classic installation packages for all supported platforms, as well as container images in Docker container format.

Classic Installation Packages

Installation packages are available from the WRC's InterSystems IRIS page for InterSystems IRIS and InterSystems IRIS for Health, and WRC’s  HealthShare page for Health Connect. Kits can also be found on the Evaluation Services website.

Availability and Package Information

This release comes with classic installation packages for all supported platforms, as well as container images in Docker container format.  For a complete list, refer to the Supported Platforms document.

The build number for this Continuous Delivery release is 2025.3.0.226.0.

Container images are available from the InterSystems Container Registry. Containers are tagged as both "2025.3" and "latest-cd".

Comentarios (0)1
Inicie sesión o regístrese para continuar
Pregunta
· 19 nov, 2025

Resources for the InterSystems IRIS Development Professional certification exam

Hi everyone,
I'm getting prepared to take the following certification exam: "InterSystems IRIS Development Professional".

Can you give some advice on how to prepare (aside from the official course page: https://www.intersystems.com/certifications/intersystems-iris-development-professional/ )?
Do you have examples of quiz questions that simulate the real exam or any material that helped you getting prepared?

Thanks you in advance,

Arber

1 nuevo comentario
Comentarios (1)3
Inicie sesión o regístrese para continuar
InterSystems Official
· 19 nov, 2025

Kits de développement logiciel (SDK) clients disponibles sur des dépôts externes

Bonjour à tous !

Je suis ravi de vous annoncer que depuis le début de l'année, nous avons publié de nombreux kits de développement logiciel (SDK) clients pour InterSystems IRIS, InterSystems IRIS for Health et Health Connect sur les plateformes de distribution externes correspondantes (Maven, NuGet, npm et PyPI). Vous bénéficiez ainsi de nombreux avantages :

  • Accès aux dernières versions des SDK clients dès leur publication, indépendamment du rythme de publication d'InterSystems IRIS.
  • Intégration des SDK comme dépendances via le gestionnaire de packages natif de votre écosystème et gestion des dépendances selon les standards du secteur.
  • Accès direct aux SDK pour les utilisateurs finaux, par exemple pour accéder directement à la couche base de données via un outil SQL tel que DBeaver.
  • Publication de projets dépendant des SDK clients InterSystems sans les inclure directement dans votre projet.

Voici la liste des SDK clients publiés à ce jour, ainsi que le numéro de version de la dernière version et leur emplacement :

Java

.NET

Node.js

Python

À l'avenir, les kits de développement logiciel (SDK) clients seront publiés sur des dépôts externes dès qu'une nouvelle version sera disponible. Ces dépôts deviendront également le principal canal de distribution des SDK clients.

L'utilisation des SDK clients est soumise aux conditions d'utilisation consultables ici : https://www.intersystems.com/IERTU/

Si vous n'avez pas encore utilisé les dépôts externes, nous vous invitons à les essayer. Comme toujours, vos commentaires sont les bienvenus !

Comentarios (0)0
Inicie sesión o regístrese para continuar