清除过滤器
文章
Claire Zheng · 十一月 8, 2021
InterSystems 2021全球线上峰会精彩内容梳理:两个重磅论坛集中探讨Analytics(分析)的奥义,InterSystems数据平台与医疗行业的愿景分享!
公告
Claire Zheng · 十一月 30, 2022
2022 年 12 月 1 日,中国,北京——致力于帮助客户解决最关键的可扩展性、互操作性和速度问题的创新数据技术提供商 InterSystems 今天宣布,在Forrester日前公布的《The Forrester Wave™:事务分析型数据平台(2022年第4季度)》报告中,InterSystems IRIS® 数据平台被评为领导者。
Forrester 将事务分析型数据平台(Translytical data platform)定义为“构建在单一数据库引擎上来支持多种数据类型和数据模型的下一代数据平台,旨在支持事务、操作和分析工作负载,而不牺牲数据完整性、性能和分析规模”。
InterSystems 认为实时(real-time)功能对事务分析型平台至关重要,是智能数据编织(smart data farics)的一个关键组成部分。这种方法基于数据和实时分析,为业务线用户提供洞察,使组织能够更快地管理中断(manage disruption),并在充满不确定和竞争日益激烈的环境中发现新的机会。
在评估过程中,Forrester 根据三个类别的标准对供应商进行了评分:当前产品、战略和市场占有率。InterSystems 在以下这些标准中均获得了最高分:建模/工具;可延展性(扩展平台的功能);可扩展性;产品愿景(与客户当前和未来需求一致);执行路线图;公司业绩以及工程师数量。
InterSystems IRIS® 数据平台 使企业能够快速开发、部署和执行数据密集型分析应用程序。通过让构建高性能、支持机器学习的应用程序变得更容易(这些应用程序可以连接数据和应用孤岛),InterSystems IRIS 简化了架构,赋能关键任务应用程序——当今企业需要这些应用程序快速解决棘手的业务难题。
InterSystems 数据平台副总裁 Scott Gnau 表示:“我们知道,在一个竞争更激烈、更动荡的世界中,企业需要更快地获得洞察以改进决策。InterSystems为客户提供了一些全新视角,这些视角只能来自于对所有相关数据的深入分析。”
通过创建智能数据编织(smart data fabric)架构,InterSystems IRIS 使企业能够做出更智能的决策,实现更好的结果。目前,一家管理着超过1万亿美元资产的全球投资银行正在使用 InterSystems IRIS 为其实时多资产交易平台提供动力,与之前的实施相比,InterSystems IRIS 令平台的可靠性、可扩展性和成本效益都得到了提升。得益于 InterSystems IRIS,银行表现提高了 10 倍,运营成本降低了 75%,吞吐量增加了 5 倍。
InterSystems IRIS 拥有如 InterSystems IRIS 自适应分析(可实现业务用户的自助服务)、IntegratedML(可用于公众数据科学),以及在编程工作流中执行实时分析的极端性能等优秀功能。InterSystems IRIS 部署在全球各地,可在多个公共云市场上使用,包括 Amazon Web Services、Microsoft Azure 和谷歌云平台。
点击“这里”,下载《The Forrester Wave™:事务分析型数据平台(2022年第4季度)》。
公告
Jeff Liu · 五月 21, 2021
随着InterSystems IRIS 2020.1和InterSystems IRIS for Health 2020.1中PEX的发布,客户有了比Java Business Host更好的方式来构建Java的产品。PEX为构建互操作性组件提供了一套完整的API,并有Java和.NET两种版本。
从InterSystems IRIS和InterSystems IRIS for Health的2020.4版本开始,Java Business Host已经被删除。 我们鼓励使用Java商业主机的客户迁移到PEX。
PEX的优势
* 允许开发人员在Java或.NET中创建任何生产组件
* 组件之间可以传递更复杂的消息结构
* 简化设置
* S简化了开发工作流程,无需使用ObjectScript。
关于迁移到PEX的更多信息,请参见从Java Business Host迁移到PEX。
文章
TZ Zhuang · 八月 6, 2021
可以使用%SYS.Journal.File类中的ByTimeReverseOrder查询,以及%SYS.Journal.Record类中的List查询来实现。
下面是这两个查询的具体作用:
A) %SYS.Journal.File类中的ByTimeReverseOrder查询这个查询会获取journal日志文件名并按降序排列
USER>set rs=##class(%ResultSet).%New("%SYS.Journal.File:ByTimeReverseOrder")
USER>do rs.Execute()
USER>while rs.Next() { write rs.Name,! }
c:\intersystems\cache\mgr\journal\20190620.003
c:\intersystems\cache\mgr\journal\20190620.002
c:\intersystems\cache\mgr\journal\20190620.001
c:\intersystems\cache\mgr\journal\20190610.001
B) %SYS.Journal.Record类中的List查询这个查询可以从指定journal日志文件中获取日志记录
USER>set rs2=##class(%ResultSet).%New("%SYS.Journal.Record:List")
USER>do rs2.Execute("c:\intersystems\cache\mgr\journal\20190620.003")
USER>while rs2.Next() { if rs2.Get("GlobalReference")["TEST" write rs2.Get("GlobalReference"),!}
^["^^c:\intersystems\cache\mgr\user\"]TEST(1)
......
^["^^c:\intersystems\cache\mgr\user\"]TEST(9)
^["^^c:\intersystems\cache\mgr\user\"]TEST(10)
这里我们可以把从A查询获得的结果传到B查询里。如果想了解从B查询里还能获得哪些字段的内容,请参考文档里的%SYS.Journal.Record类定义
下面是一个把A和B查询合并在一起的例子:
///参数 globalname: 需要查询的Global名字(不包括^)
ClassMethod SearchAllJournals(globalname As %String)
{
if $get(globalname)="" {
write "请指定Global名字",!
quit
}
//从当前所有journal日志文件中搜索指定的global
set rs1=##class(%ResultSet).%New()
set rs1.ClassName="%SYS.Journal.File"
set rs1.QueryName="ByTimeReverseOrder"
do rs1.%Execute()
while rs1.%Next() {
set jrnfile=rs1.%Get("Name")
set size=rs1.%Get("Size")
write "Journal file:",jrnfile,!," File size:",size/1024/1024," MB",!
do ..SearchGlobal(globalname,jrnfile)
}
do rs1.Close()
}
///第一个参数 globalname: 需要查询的Global名字(不包括^)
///第二个参数 jrnfile: 指定的journal日志文件名字(包括路径)
ClassMethod SearchGlobal(globalname As %String, jrnfile As %String)
{
set rs1=##class(%ResultSet).%New()
set rs1.ClassName="%SYS.Journal.Record"
set rs1.QueryName="List"
//打开journal日志文件并搜索指定的Global
do rs1.%Execute(jrnfile,"GlobalReference,NewValue",,,$lb("GlobalReference","[",globalname))
while rs1.%Next() {
set glo=rs1.%Get("GlobalReference")
write " ",glo," = ",rs1.%Get("NewValue"),!
}
do rs1.Close()
}
文章
Johnny Wang · 十二月 19, 2021
如果您经常阅读我们的博客,您可能记得去年夏天我们进行了 InterSystems 速度测试,该测试由 ESG 验证,旨在测试数据库可以同时摄取和查询的数据量,以及这表现出的具体的影响。从那以后,我们 GitHub 页面的许多访问者一直在根据自己的想法重复验证这个测试
最初,第一次数据库速度测试将 InterSystems IRIS 数据平台与来自许多不同云和数据管理供应商的流行数据库进行了比较。令人兴奋的是,我们现在可以宣布,我们已经将数据库性能测试从 SAP HANA、AWS Aurora MySQL、SAP Sybase ASE 和 AWS RDS SQL Server 扩展到包括 PostgreSQL、MariaDB 和 Oracle Enterprise,所有这些都跑在 Amazon Web Services (AWS )上面。
我们为什么要做这一次开源速度测试?
通过模拟不支持任何特定产品的多工作负载用例,速度测试往往充当了另一种数据库性能测试工具,可以根据测试结果来确定哪个数据库或数据平台最适合业务需求来做出决策。随着许多公司继续进行数字化转型并探索传统技术的替代品,这种能力被证明是至关重要的。
数据库速度测试最大的特点就是您可以轻松地在云端或您的机器上自己体验它,并且由于我们已将测试作为可定制的开源代码发布,它可以扩展到您自己的数据和查询。
许多人将其视为微服务的首选平台,开源速度测试现在也可在 Kubernetes 上运行,以响应该应用程序在 InterSystems 开发人员社区中越来越受欢迎的现状。这意味着除了能够使用 AWS 和 Amazon Elastic Kubernetes Service (EKS) 之外,开发人员还可以了解 InterSystems IRIS 如何在 Kubernetes 集群上执行并利用 InterSystems Kubernetes Operator。
InterSystems IRIS 如何与竞争对手抗衡?
数据库速度测试着眼于同步摄取和查询性能的特定用例,这是医疗、金融、供应链和制造等许多行业实时用例的基本要求。
最新速度测试的结果发现,与 AWS MariaDB 相比,InterSystems IRIS 在测试期间摄取的记录多 620.9%,到最后摄取它们的速度提高了 717.3%。将 InterSystems IRIS 与在公共云上运行的 Sybase ASE 的性能进行比较发现,InterSystems IRIS 在测试期间摄取的记录多 4862.8%,在测试结束时摄取记录的速度提高了 6733.4%。
对于任何希望对其基础架构进行现代化改造以提高实时和接近实时的数据库性能的公司,这些指标都极为重要。此外,对于那些在 SAP Sybase ASE 上运行生产应用程序的公司,InterSystems 对 Transact-SQL 的本机支持允许这些应用程序的无缝迁移,通常不需要重写自定义代码。
不要只相信我们的话,请访问我们的 GitHub 页面,亲自对 InterSystems IRIS 进行测试,或在此处了解有关速度测试如何工作的更多信息。
阅读更多关于 Amir Samary 的 InterSystems IRIS 数据平台速度测试的博客文章
阅读更多关于去年夏天我们进行的 InterSystems 速度测试
关于作者:Amir Samary
Amir Samary 已在数据库、互操作性和 InterSystems 技术方面工作了 20 多年。 Amir 致力于为使用 InterSystems 技术为阿根廷、巴西、智利、哥伦比亚、乌拉圭和美国的各个行业构建解决方案的合作伙伴、客户和开发人员提供支持。 这使 Amir 能够理解和试验不同技术、文化和基础设施现实中的模式和架构。 Amir Samary 目前担任解决方案架构经理,他领导 InterSystems 的一组解决方案开发人员。 他主修计算机科学,辅修数学。
查看原文 阅读更多关于 Amir Samary 的 InterSystems IRIS 数据平台速度测试的博客文章
阅读更多关于去年夏天我们进行的 InterSystems 速度测试
这两个还有文中的其他链接可以换成中文链接(如果有)吗?谢谢! 关于:阅读更多关于去年夏天我们进行的 InterSystems 速度测试,请查看链接:https://cn.community.intersystems.com/post/%E6%B4%9E%E5%AF%9F%E6%96%B0%E7%9A%84-intersystems-%E9%80%9F%E5%BA%A6%E6%B5%8B%E8%AF%95
谢谢! 直接在原文里改吧
文章
Claire Zheng · 一月 4, 2023
在InterSystems 2022年全球峰会上,InterSystems 数据平台负责人 Scott Gnau解读了智能数据编织(smart data fabric)及其实现方式。Scott 同时也是一位钢笔收藏家,他分享了自己学习收藏的过程,认为这种过程与智能数据编织有着异曲同工之妙。InterSystems IRIS数据平台的诸多优秀能力可以帮助用户实现智能数据编织,重塑数据利用方式!
公告
Jeff Liu · 七月 5, 2023
嗨,开发者,
欣赏InterSystems Bilibili上的新视频:
⏯为什么水平可扩展性就像团队合作 @ 2022 年全球峰会
借助 InterSystems IRIS,您可以跨节点集群分配数据和工作负载、扩展和扩展以及根据需要动态重新平衡。在本次会议中,您将了解有关该技术和我们的一些部署的更多信息。
🗣演讲者:@Benjamin.DeBoe,InterSystems 产品经理
享受它并保持关注! 👍
文章
he hf · 四月 24, 2023
SqlDbx是我们常用的数据库查询与操作工具,因其轻量且无须安装而无处不在,然而习惯了在Intersystems的CACHE和ENSEMBLE版本下使用SqlDbx在升级到IRIS版本后却无法使用了,为此进行了一系列尝试,并最终获得成功,形成本文攻略,分享给大家。
1、在SqlDbx的连接登录窗口,从DBMS Type中直接选择 “InterSystems CACHE”连接IRIS会报错,提示“通过IRISconnect失败”,说明“InterSystems CACHE”不再适用于IRIS。
2、考虑IRIS的ODBC支持,为此换一种思路,采用ODBC方式连接,此方式需要在ODBC中建立DSN。
3、从Intersystems官网https://intersystems-community.github.io/iris-driver-distribution/或github网站https://github.com/intersystems-community/iris-driver-distribution/tree/...下载InterSystems IRIS ODBC 32位驱动,注意一定要下载32位驱动(注:SqlDbx现只支持32位的ODBC)。
4、下载后直接安装即可。
5、通过Windows的控制面板找到“管理工具”,打开后找到“ODBC Data Sources (32-bit)”(注:SqlDbx现只支持32位的ODBC),在弹出的“ODBC数据源管理程序(32位)”窗口中“用户DSN”页签中选择添加DSN,在随后弹出的“数据源驱动程序”窗口中选择“InterSystems IRIS ODBC35”,点击“完成”。
6、在弹出的“InterSystems ODBC Data Source Setup”窗口中填写数据源名称、描述、主机IP、端口、命名空间、用户名、密码,检查正确无误后、点击测试连接,在弹出的窗口中科室看到连接成功结果,点击“OK”,这就基本成功啦。
7、回到“ODBC数据源管理程序(32位)”窗口,可以看到刚才成功添加的用户DSN。
8、再回到SqlDbx的连接登录窗口,从DBMS Type中选择“OBDC”,点击DSN下拉选择框的后面三个点,在弹出的选择窗口中可以看到刚才成功添加的用户DSN,选中并点击OK,DSN中出现了刚才选择的数据库服务器,点击OK,成功完成了连接登录。恭喜你,可以用SqlDbx继续对IRIS的访问和操作啦!
您可以试试dbeaver dbeaver的兼容也特别好。
公告
Claire Zheng · 一月 28, 2024
近日,InterSystems宣布 InterSystems IRIS® Cloud SQL 和 InterSystems IRIS® Cloud IntegratedML® 服务全面上市。 这些全面托管的云原生智能数据服务使开发人员能够轻松地在SQL环境中构建云原生数据库和机器学习(ML)应用程序。
通过 Cloud SQL和 Cloud IntegratedML,开发人员可以访问下一代关系数据库即服务(DBaaS),DBaaS快速且易于配置和使用。 嵌入式AutoML功能支持开发人员在全面托管的、弹性的云原生环境中,仅仅通过几条类似SQL的命令即可轻松开发并执行机器学习模型。
为关键任务型应用程序打造完整的数据管理组合
作为InterSystems Cloud智能数据服务组合的一部分,Cloud SQL和Cloud IntegratedML为应用开发人员提供了在 AWS上使用InterSystems成熟的企业级功能的机会,这些功能是自助式的、全面托管的产品,同时为 InterSystems IRIS®数据平台的全套功能提供了快速、无缝的接入渠道。
InterSystems IRIS 是为实施智能数据编织(smart data fabrics)的企业设计的下一代数据平台,可提供强大的数据库管理、集成和应用开发能力—— InterSystems IRIS将这些功能整合到单一产品中, 加速了数据赋能的价值实现,简化了整体系统架构,减少了维护工作和成本。
InterSystems数据平台全球主管Scott Gnau表示:“InterSystems IRIS的功能可以通过这些易于部署和使用的新服务得以展示,我们对此感到非常兴奋。 通过对AutoML的本地支持,我们为开发人员提供了构建全面、预测性和规范性应用程序的能力。”
通过InterSystems IRIS Cloud SQL实现全面托管,具备企业级的可靠性
Cloud SQL 令应用程序开发人员能够轻松地利用高级关系数据库功能,将其作为一种全面托管的、安全、可扩展、高性能、高可用性的云原生数据库即服务(DBaaS)。
Cloud SQL为SQL开发者带来以下优势:
极致的高性能,尤其体现在大规模、低延迟地采集和处理传入数据并对数据执行SQL查询方面
配置及使用快速、简便
可通过JDBC、ODBC、DB-API和ADO.NET驱动轻松连接客户端应用程序
自动安全、数据加密和备份
通过InterSystems IRIS Cloud IntegratedML 实现机器学习任务的自动化
作为InterSystems IRIS Cloud SQL客户的附加云托管服务,Cloud IntegratedML扩展了Cloud SQL的功能,SQL开发人员仅需通过几条类似SQL的命令即可快速构建、调整和执行机器学习模型,无需将数据移动或复制到不同的环境。 Cloud IntegratedML 的一个显著优势是无需将数据传输或复制到外部平台来构建 ML 模型,也无需将 ML 模型移动到不同的环境中执行。
Cloud IntegratedML为SQL开发者带来以下优势:
机器学习流程和资源密集型任务(如特征工程、模型开发和微调)的自动化
在Cloud SQL中无缝集成使用Cloud IntegratedML 开发和训练的模型,促进在事件和事务响应中的实时预测见解以及规范性行动
对于正在根据自身需求量身定制健壮、高性能数据库解决方案的SQL开发者来说,这套全面的智能数据服务令InterSystems Cloud智能数据服务组合成为SQL开发者的最佳选择。 新的Cloud SQL和Cloud IntegratedML服务可通过 InterSystems Developer Hub获取。
公告
Nicky Zhu · 三月 30, 2021
2021年3月23日 – 提醒:镜像Dejournaling的潜在数据完整性问
InterSystems 已经纠正了一个缺陷,该缺陷在极少数情况下会导致非主镜像成员的数据不一致问题。此缺陷影响到InterSystems产品的所有发布版本。
如果发生该缺陷,则会在镜像系统的正常运行中悄然发生。该缺陷的结果是,镜像成员未能删除数据库日志的子集,然后导致镜像成员之间的数据不一致。这对故障转移和异步成员都有影响。虽然这个缺陷遇到的可能性非常小,但InterSystems建议所有使用镜像的客户都要获得修正,并使用DataCheck验证镜像数据库的一致性。有关可能触发该缺陷的具体情况以及将遇到该缺陷的风险降至最低的步骤的更多详细信息,请联系全球响应中心(WRC)。
该缺陷的更正被确定为 SML2898、HYY2434 和 HYY2435,并将包含在所有未来的产品版本中,包括 Caché 和 Ensemble 2018.1.5 以及 InterSystems IRIS 和 InterSystems IRIS for Health 2019.1.2 和 2020.1.1。这些更正也可通过InterSystems全球响应中心(WRC)的Ad hoc分发版本获得。
如果您对这个提醒有任何疑问,请联系 Worldwide Response Center。
文章
Claire Zheng · 三月 21, 2024
本文汇聚了与FHIR相关的内容,包括新闻资讯、线上研讨会、视频、客户案例、行业洞察等,欢迎收藏保存!
01| 新闻资讯
InterSystems IRIS医疗版互联互通套件3.0版发布:助力用户快速验证标准符合性,推动互联互通项目价值落地(2023年)
InterSystems IRIS医疗版互联互通套件2.0版支持国内互联互通标准转换为FHIR标准,提升数据易用性(2022年)
InterSystems发布InterSystems IRIS医疗版互联互通套件,加速医院互联互通平台建设(2021年)
技术总监答疑 | 我们为什么要做InterSystems IRIS医疗版互联互通套件?
InterSystems IRIS® FHIR®加速器服务赋能医疗数据,实现轻松检索和储存(2021年)
InterSystems加入Vulcan FHIR® 加速器™计划,将数据互操作能力扩展至生命科学领域
02 | 线上研讨会
扫码看回放 | FHIR研讨会:如何有效利用数据核心资产?
医疗行业的生态创新:如何实现数据利用和应用创新
辨析互联互通测评方案新旧版,多位专家线上解读国内外互联互通标准与实践
报名观看 | 加速测评!InterSystems IRIS医疗版互联互通套件研讨会
03 | 视频(及视频文字版)
对话:“数据二十条”与FHIR标准
【文字版】对话:“数据二十条”与FHIR标准
如何准确理解FHIR能力?医疗IT行业的数据交换和共享难题如何破?
借助FHIR,医疗信息系统如何获得真正的互操作性?
基于FHIR的数据利用,轻松应对数据共享需求
InterSystems IRIS哪些新特性让用户开发体验得到了极大提升?
FHIR的设计理念与关键构成:助力您提高互操作性
深度解读:FHIR标准和国际互联互通实践
FHIR分享:FHIR扩展原则、工具及示例
Smart On FHIR用例:儿童生长发育曲线
Smart On FHIR用例:心血管疾病风险预测
FHIR分享:FHIR 实施指南创建及发布
互联互通套件产品用例:互联互通文档转FHIR
04 | 客户案例
共推互联互通标准,加速FHIR本地化进程,InterSystems携手合作伙伴共同助力北京友谊医院开展专项课题研究
香港大学深圳医院:通过一体化系统推动数字化转型与智慧医院建设
通过Health Connect Cloud,InterSystems帮助Pria改善患者结果,简化居家医疗健康护理流程
InterSystems IRIS医疗版™携手First Line Software,共同简化i2b2社区临床研究工作流程
日本柯尼卡美能达采用InterSystems IRIS 医疗版™:助力医学影像设备基于FHIR实现快速数据集成
处理大量影像数据:利用AI和临床数据创建新一代企业级影像应用
05 | 行业洞察/深度解读
FHIR标准和国际基于FHIR的互联互通实践
医院数字化转型之数智底座建设思路
通过智能数据编织(Smart Data Fabric)应对数据挑战
开发者社区精选 | 漫谈应用集成的现在与未来(上):什么是应用集成?互操作≠集成
开发者社区精选 | 漫谈应用集成的现在与未来(中):什么是集成平台?集成平台概念辨析与定义
开发者社区精选 | 漫谈应用集成的现在与未来(下):集成方案与评价,以及应用集成的发展
行业洞察 | InterSystems开发者关系主管Dean:集成FHIR,改变游戏规则
行业洞察|全面释放医疗互操作性的益处:下一个前沿
老牌知名医疗技术公司可以从创业公司身上学习什么?
抓住FHIR:医疗数据的API管理
InterSystems 2022.2:令企业级应用研发更高效
行业洞察:为什么互操作性对医疗科技产业至关重要
以FHIR推动数据资产生态建设,赋能医院高质量发展
InterSystems技术令HL7 FHIR创新简洁而迅速
InterSystems FHIR 服务器:助力您更快地开发医疗健康应用程序
公告
Jeff Liu · 四月 18, 2022
各位开发者们好,
欢迎在我们的 Bilibili 频道观看新视频:
客户选择InterSystems IRIS的原因是其强大的数据引擎的纯粹速度。为了衡量我们的引擎改进对速度的贡献,我们不断地进行性能测试,包括内部测试和使用客户的数据和工作负载的测试。在过去的一年里,这些测试表明基于SQL的应用程序的性能有了很大的提高,我们将很高兴在这个视频中告诉你更多。
收获: InterSystems IRIS提供的SQL性能会让你大吃一惊。
演讲者: @Benjamin.DeBoe, InterSystems 产品经理
本视频的其他材料,你可以在 InterSystems Online Learning Course找到。
请继续关注! 👍🏼
公告
Claire Zheng · 一月 17, 2022
为了帮助您开始使用FHIR,我们发布了一个新的学习路径: Building Basic FHIR Integrations with InterSystems IRIS for Health. 通过这个路径,您可以学习FHIR的基础知识,学习如何在InterSystems IRIS医疗版中设置FHIR端点,将数据应用到FHIR存储库并转换FHIR数据,使用InterSystems API管理器管理FHIR API,以及使用客户端应用查询FHIR资源。该路径包括一些建议,例如使用SDA-FHIR转换将其他数据格式转换为FHIR。
我们还在考虑如何创建额外的内容,以指导您启用现有的应用程序并利用存储在FHIR存储库之外的数据。这些对您有用吗?关于如何使用FHIR和InterSystems产品,您还想学习什么?
文章
Nicky Zhu · 九月 7, 2021
本文档介绍了 XEP API,它在 InterSystems IRIS®数据平台上极其快速的 .NET 对象存储和检索支持。它向您提供了一个关于 .NET 对象持久化的 XEP 方法的进阶概述,并引导您通过一个简单的场景来演示 API 的主要功能。
这些活动被设计成只使用默认设置和功能,这样您就可以熟悉 XEP 的基本原理,而不必处理超出本概述范围的细节。有关 XEP 的完整文档,请参见 Persisting .NET Objects with InterSystems XEP (《使用 InterSystems XEP 持久化 .NET 对象》)。
要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems First Looks(《InterSystems 技术概要》)。
快速的对象存储和检索
面向对象编程是 .NET 框架的核心,因此 .NET 应用程序将数据建模为对象是很自然的。然而,当应用程序需要将数据存储在数据库中时,这可能会导致问题。如果您使用 ADO.NET 来存储和检索对象,您就面临着将对象数据转换为一组关系表、然后再将查询结果集转换为对象的问题。这个问题的通常解决方案是使用对象-关系映射(ORM)框架,如实体框架(Entity Framework) 来自动化这个过程。InterSystems IRIS 确实提供了实体框架(Entity Framework)接口,InterSystems 推荐它用于大型、复杂的对象层次结构。另一方面,对于执行实时数据采集等任务的应用程序,主要问题是速度而不是数据复杂性。虽然实体框架(Entity Framework)绝对不慢(如果适当优化的话),但对于需要极快地存储和检索简单或中等复杂数据的任务来说,XEP 是一个更好的选择。在大多数情况下,它比实体框架(Entity Framework)或 ADO.NET 快得多。
XEP 是如何工作的?
XEP 是一个轻量级的 .NET API,它将 .NET 对象数据作为持久化事件(persistent event)来投射。持久化事件(persistent event)是 InterSystems IRIS 类的一个实例(通常是 %Persistent 的子类),包含 .NET 对象中数据字段的副本。与任何此类实例一样,可以通过对象访问、SQL 查询或直接 global 访问来检索它。
在创建和存储持久化事件(persistent event)之前,XEP 必须分析相应的 .NET 类,并将模式(schema)导入数据库。模式(schema)定义了用于存储 .NET 对象的持久化事件类的结构。如果持久化事件类不存在相应的 ObjectScript 模式,则导入模式(schema)将自动为其创建相应的 ObjectScript 模式。来自分析的信息可能是 XEP 导入简单模式所需要的全部信息。对于更复杂的结构,您可以提供额外的信息,允许 XEP 生成索引并覆盖导入字段的默认规则。 在为类创建模式(schema)之后,您可以使用各种 XEP 方法来存储、更新或删除事件、运行 SQL 查询,并通过查询结果集进行迭代。
试一试!XEP 的实际操作
现在是您自己尝试 XEP 的时候了。这个 XepSimple 演示是一个非常小的程序,但它提供了大多数关键 XEP 功能的示例,并概述了如何使用 XEP API。(想试试 InterSystems IRIS .NET 开发和互操作性功能的在线视频演示吗?请看.NET QuickStart(.NET 快速入门)!)
用前须知
要使用该程序,您需要一个安装了 .NET 框架和 Visual Studio 的 Windows 系统,以及一个运行中的 InterSystems IRIS 实例来连接。您对 InterSystems IRIS 的选择包括多种类型的已授权的和免费的评估实例;实例不需要由您正在工作的系统托管(尽管它们必须相互具有网络访问权限)。关于如何部署每种类型的实例的信息(如果您还没有可使用的实例),请参见 InterSystems IRIS Basics:Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中的 Deploying InterSystems IRIS(部署 InterSystems IRIS)。使用同一文档中的 InterSystems IRIS Connection Information(InterSystems IRIS 连接信息)和 .Net IDE 中的信息将 Visual Studio 连接到您的 InterSystems IRIS 实例。
配置 Visual Studio 项目
首先,打开 Visual Studio 并创建一个新的控制台(console)应用程序项目,选择 Visual C# 和 Console App (.NET Framework)(控制台应用程序(.NET 框架)) 选项。对于 Name(名称) 字段,输入 netxep。(想试试 InterSystems IRIS .NET 开发和互操作性功能的在线视频演示?请看.NET QuickStart(.NET 快速入门)!)
添加程序集引用
XEP API 被打包到 InterSystems.Data.XEP.dll 库中,该库必须安装在您的本地系统上。您可以通过克隆 repo https://github.com/intersystems/quickstarts-dotnet/tree/master/XEP 或从该 repo 下载文件来获取它。如果 InterSystems IRIS 安装在您的本地系统或您可以访问的另一个系统上,则该程序集已经安装在子目录 install-dir\dotnet\bin\v4.5 中,其中 install-dir 是实例的安装目录。
要将 InterSystems.Data.XEP.dll 的程序集引用添加到项目:
从 Visual Studio 主菜单中,选择 Project(项目) > Add Reference(添加引用)...
在出现的窗口中,点击 Browse(浏览)....
浏览到 InterSystems.Data.XEP.dll 文件的位置。
选择文件并点击 Add(添加)。
点击 OK(确定)。
在 Visual Studio Solution Explorer 中,InterSystems.Data.XEP.dll 程序集现在应该列在 References(引用)下。
添加示例类
在创建程序源文件之前,您将添加一个类,主程序会访问该类以生成用于存储的示例对象。在 Visual Studio 中,使用 Project(项目) > Add Class(添加类) 添加一个 C# 类文件到 netxep 项目。删除类文件的默认内容,并将以下代码复制并粘贴到文件中。
using System; namespace xep.samples
{
public class SingleStringSample { public string name;
public SingleStringSample() { }
internal SingleStringSample(string str) { name = str;}
public static SingleStringSample[] generateSampleData(int objectCount) { SingleStringSample[] data = new SingleStringSample[objectCount]; for (int i = 0; i < objectCount; i++)
{
data[i] = new SingleStringSample("single string test");
}
return data;
}
}
}
因为这个类非常简单,所以 XEP 不需要任何注释就可以从中生成有效的模式。对于真实应用程序中更复杂的类,您可以使用各种选项来优化导入。
创建 XEP 演示程序
现在您可以创建 XEPSimple 演示程序了。在 Visual Studio 中,找到您在创建项目时创建的默认 program.cs 文件。删除该文件的默认内容,并粘贴下面的代码,用connection information for your InterSystems IRIS instance(您的 InterSystems IRIS 实例的连接信息)替换主机、端口、irisnamespace、用户名和密码变量的值。您可以指定所示的 USERnamespace,也可以选择在实例上创建的另一个命名空间。
using System;
using InterSystems.XEP; using xep.samples;
namespace XepSimpleNamespace
{
public class XepSimple
{
public static void Main(string[] args)
{
// Generate 12 SingleStringSample objects for use as test data SingleStringSample[] sampleArray = SingleStringSample.generateSampleData(12);
// EventPersister
EventPersister xepPersister = PersisterFactory.CreatePersister();
String host = "127.0.0.1"; // InterSystems IRIS host int port = 51774; // InterSystems IRIS Superserver port
String irisnamespace = "USER"; // InterSystems IRIS namespace String username = "_system"; // Credentials for InterSystems IRIS String password = "SYS"; //Credentials for InterSystems IRIS
xepPersister.Connect(host,port,irisnamespace,username,password); // connect to localhost xepPersister.DeleteExtent("xep.samples.SingleStringSample"); // remove old test data xepPersister.ImportSchema("xep.samples.SingleStringSample"); // import flat schema
// Event
Event xepEvent = xepPersister.GetEvent("xep.samples.SingleStringSample");
long[] itemIdList = xepEvent.Store(sampleArray); int itemCount = 0;
for (int i = 0; i < itemIdList.Length; i++)
{
if (itemIdList[i] > 0) itemCount++;
}
Console.WriteLine("Stored " + itemCount + " of " + sampleArray.Length + " events");
// EventQuery
EventQuery<SingleStringSample> xepQuery = null;
String sqlQuery = "SELECT * FROM xep_samples.SingleStringSample WHERE %ID BETWEEN ? AND ?";
xepQuery = xepEvent.CreateQuery<SingleStringSample>(sqlQuery); xepQuery.AddParameter(3); // assign value 3 to first SQL parameter xepQuery.AddParameter(12); // assign value 12 to second SQL parameter xepQuery.Execute(); // get resultset for IDs between 3 and 12
xepQuery.Close(); xepEvent.Close(); xepPersister.Close();
} // end main()
} // end class xepSimple
}
演示程序分为三个部分,每个部分演示了 XEP 三个主要类——EventPersister、 Event 和 EventQuery 中的一个。运行时,XepSimple 演示程序执行以下任务:
首先,通过调用示例数据类(sample data class) xep.samples.SingleStringSample 这一方法生成一些示例对象。
EventPersister 是 XEP 的主要入口点(main entry point),并提供到数据库的连接。
它创建一个名为 xepPersister 的实例,该实例在数据库中建立到 User 命名空间的 TCP/IP 连接,并删除任何现有的示例数据。然后调用 ImportSchema() 来分析示例类并将模式发送到数据库,从而创建相应的 ObjectScript 模式来保存持久化 SingleStringSample 对象。
Event 封装了(encapsulate) .NET 对象和相应的数据库对象之间的接口。
一旦生成了模式(schema),xepPersister 就可以为示例类创建一个名为 xepEvent 的 Event 对象。Store() 方法将 .NET 对象数组存储为持久化事件。
EventQuery 用于准备和执行 SQL 查询的有限子集。
名为 xepQuery 的 EventQuery<SingleStringSample> 对象是通过将查询字符串传递给 xepEvent 对象的 CreateQuery() 方法创建的。 该字符串定义了一个接受两个参数(? 字符)的 SQL 查询。 参数值是通过调用 AddParameter() 定义的,调用 Execute() 来获取查询结果集。
当处理完成后,它通过调用 XEP 对象的 close() 方法进行清理。
运行 XEPSimple 程序
现在您可以构建和运行 XEPSimple 演示程序了。按 Ctrl + F5 运行程序,以便当程序结束时命令提示符保持打开状态。
下一步
XepSimple 演示的目的是让您体验 XEP,而又不陷入细节困境,它不是用于实际生产代码的模型——它甚至没有进行异常检查。最重要的简化是在示例数据中。您从一个不需要注释或其他机制来帮助模式(schema)生成和优化的类中持久化了一些很小的 .NET 对象。虽然在实际应用程序中通常需要注释和其他选项,但这些选项非常简单易用。API 也同样简单易用。
有关所有 XEP 功能的全面描述,请参见 Persisting .NET Objects with InterSystems XEP(《使用 InterSystems XEP 持久化 .NET 对象》)。
了解有关 .NET 支持的更多信息
InterSystems IRIS 提供了 .NET API,通过 SQL 表、对象和多维存储轻松访问数据库。有关每种类型的访问的详细信息,请参见以下书籍:
Using the Native API for .NET(《使用 Native API for .NET》),了解从 .NET 应用程序访问 InterSystems IRIS globals。
Using ADO.NET Managed Provider Classes(《使用 ADO.NET Managed Provider Classes》),了解SQL 表访问。允许您的 .NET 项目使用完全兼容的通用 ADO.NET Managed Provider 版本访问 InterSystems IRIS 数据库。
Using the InterSystems ODBC Driver(《使用 InterSystems ODBC Driver》),了解 SQL 表访问。InterSystems ODBC 驱动程序允许 InterSystems IRIS 建立到外部应用程序的 ODBC 连接,并通过 SQL 提供对外部数据源的访问。
Persisting .NET Objects with InterSystems XEP(《使用 InterSystems XEP 持久化 .NET 对象》),了解对象访问。XEP 对事务处理应用程序进行了优化,这类程序使用复杂度从简单到中等的对象层次结构,且要求极高的对象数据持久化和检索速度。
Using the Entity Framework Provider(《使用 Entity Framework Provider》),了解对象-关系映射。提供有关使用实体框架(Entity Framework)技术访问 InterSystems IRIS 数据库的信息。
这是我们的Firstlook 文档? 对
问题
Michael Lei · 三月 1, 2022
Hi Community,
C:\InterSystems\IRISHealth\CSP\bin.csp.cni 有用户名, 但密码被加密了,如何解密或者重置?
谢谢!
1. Open <IRIS>\CSP\bin\CSP.ini
2. Edit Username/Password in [LOCAL] section.
3. Using Management Portal or ^SECURITY routine set the same user as (2) if they do not match.
4. Restart InterSystems IRIS.