我本人和其他技术架构师经常需要向客户和供应商说明 Caché IO 要求以及 Caché 应用程序使用存储系统的方式。 在向客户和供应商说明典型的 Caché IO 配置文件和事务性数据库应用程序的要求时,下面的表格很有用。 原始表格由 Mark Bolinsky 创建。
在以后的帖子中,我将讨论更多关于存储 IO 的内容,所以现在贴上这些表格也作为将来文章的参考。
InterSystems IRIS 是一个完整的数据平台
InterSystems IRIS 为您提供了捕获、共享、理解组织最宝贵的资产(数据)并采取相应行动所需的一切。
作为一个完整的平台,InterSystems IRIS 不需要集成多种开发技术。应用程序需要更少的代码、更少的系统资源和更少的维护。
我本人和其他技术架构师经常需要向客户和供应商说明 Caché IO 要求以及 Caché 应用程序使用存储系统的方式。 在向客户和供应商说明典型的 Caché IO 配置文件和事务性数据库应用程序的要求时,下面的表格很有用。 原始表格由 Mark Bolinsky 创建。
在以后的帖子中,我将讨论更多关于存储 IO 的内容,所以现在贴上这些表格也作为将来文章的参考。
您的应用程序已部署,一切运行正常。 很好,击个掌! 然后电话突然响个不停 – 用户投诉应用程序有时很“慢”。 这是什么意思? 有时? 您有哪些工具,查找和解决这个缓慢问题应查看哪些统计数据? 您的系统基础架构是否能承担用户负载的任务? 在投入生产之前,应该询问哪些基础架构设计问题? 如何自信地为新硬件规划容量,而不会过度规定? 如何停止电话铃声? 如何一开始就不让它响?
InterSystems API Manager (IAM)的2.3版本的正式版本已经发布。
IAM的容器,包括从IAM早期版本升级的所有相关工件,可以从。WRC软件分发站点 的组件区下载.
这个版本的构建号是IAM 2.3.3.2-1。
这个版本是基于Kong企业版2.3.3.2。
InterSystems API Manager 2.3使其更容易以安全的方式和高可用性的场景进行部署 它有许多新的功能,包括:
混合模式允许你在数据面和控制面部署IAM节点。当数据平面处理API流量时,控制平面用于配置数据平面节点并观察来自数据平面的遥测数据。这赋予了部署更多的灵活性,减轻了部署HA场景的工作量。关于混合模式的更多信息可以在[这里](https://docs.konghq.com/enterprise/2.3.x/deployment/hybrid-mode/)找到。在接下来的日子里,InterSystems开发者社区也将更详细地介绍这一功能。
IAM 2.3的文档可以在 这里找到。该文档只涉及IAM特有的元素。产品中的文档链接将用户直接带到Kong Enterprise的文档。
从IAM 1.5.0.9升级需要通过两个中间版本进行增量升级,这在文档中会有更详细的描述。
本主题描述如何使用InterSystems IRIS发送和接收MIME电子邮件消息。
注意:本主题中的示例是经过组织的,因此管理电子邮件的方法可以用于不同的电子邮件服务器,这在测试和演示期间非常有用。这不一定是最适合生产需要的代码组织。
电子邮件使用标准协议通过Internet发送消息。 InterSystems IRIS支持以下三种协议:
MIME电子邮件的对象表示形式。它支持文本和非文本附件、单部分或多部分邮件正文,以及ASCII和非ASCII字符集的标题。SMTP服务器发送电子邮件。SMTP(简单邮件传输协议)是发送电子邮件的Internet标准。POP3从电子邮件服务器检索电子邮件,POP3是从远程服务器检索电子邮件的最常用标准。注意:InterSystems IRIS不提供邮件服务器。相反,它提供了连接到邮件服务器并与之交互的功能。
MIME电子邮件首先,了解InterSystems IRIS如何表示MIME电子邮件非常有用。
通常,多部分MIME邮件由以下部分组成:
Mime-Type标头和Content-Type标头。创建HTTP请求后,使用以下方法之一发送该请求:
method Delete(location As %String = "",
test As %Integer = 0,
reset As %Boolean = 1) as %Status
发出HTTP DELETE请求。
method Get(location As %String = "",
test As %Integer = 0,
reset As %Boolean = 1) as %Status
发出HTTP GET请求。此方法使Web服务器返回请求的页面。
method Head(location As %String,
test As %Integer = 0,
reset As %Boolean = 1) as %Status
发出HTTP Head请求。此方法使Web服务器仅返回响应头,而不返回正文。
可以设置和获取HTTP标头的值。
%Net.HttpRequest的以下每个属性都包含具有相应名称的HTTP标头的值。如果不设置这些属性,则会自动计算它们:
AuthorizationContentEncodingContentLength(此属性为只读。)ContentType (指定Content-Type标头的Internet媒体类型(MIME类型)。)ContentCharset (指定Content-Type标题的字符集部分。如果设置此属性,则必须首先设置ContentType属性。)DateFromIfModifiedSincePragmaProxyAuthorizationRefererUserAgent%Net.HttpRequest类提供可用于设置和获取主HTTP标头的常规方法。这些方法忽略Content-Type和其他实体标头。
返回包含此请求中的主HTTP标头的字符串。
将主HTTP标头写入当前设备。
返回此请求中设置的任何主HTTP标头的当前值。此方法接受一个参数,即头的名称(不区分大小写);这是一个字符串,如Host或Date
设置标题的值。
随着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。
由于这是一个预览版,我们渴望在下个月的通用版发布之前了解您对这个新版本的经验。请通过开发者社区分享您的反馈,以便我们能够共同打造一个更好的产品。
InterSystems IRIS数据平台2021.1是一个扩展维护(EM)版本。自2020.1(上一个EM版本)以来,在持续交付(CD)版本中增加了许多重要的新功能和改进。请参考2020.2、2020.3和2020.4的发布说明,了解这些内容的概况。
这个版本的增强功能为开发人员提供了更大的自由度,可以用他们选择的语言构建快速和强大的应用程序,并使用户能够通过新的和更快的分析功能更有效地消费大量的信息。
通过InterSystems IRIS 2021.1,客户可以部署**InterSystems IRIS Adaptive Analytics**,这是一个附加产品,它扩展了InterSystems IRIS,为分析终端用户提供了更大的易用性、灵活性、可扩展性和效率,而不管他们选择何种商业智能(BI)工具。它能够定义一个有利于分析的业务模型,并通过在后台自主构建和维护临时数据结构,透明地加速针对该模型运行的分析查询工作负载。
在上一篇文章《互操作消息统一管理系列:Message Bank》中,我们了解到在Message Bank中,消息均以半结构化(XML)或非结构化(Stream)的形式保存,因此无法与客户端的结构化消息一样,直接支持基于索引的检索。为此,需要在Message Bank中定义Search Table以支持查询。关于Search Table的定义和作用,请查阅https://docs.intersystems.com/healthconnectlatest/csp/docbook/DocBook.UI.Page.cls?KEY=EEDI_search_tables。
大家如果使用过消息查看器,则能够了解IRIS自动持久化消息并提供界面让大家能够根据消息头中(如发生事件、来源、目标等)或消息体中(如患者姓名、诊断名称等消息的具体属性)来查询消息。 而在Message Bank上进行查询时,如果直接使用消息查看器,能够查询的是Message Bank的Production中传输的消息,而若不是在源系统中出现的消息,这一点一定不要混淆。
企业信息库(MessageBank)是一个可选的远程归档设施,可以从多个来自不同实例的互操作性Production中收集信息、事件日志项目和搜索表项。如下图所示:

这套环境由两种角色的实例构成: 企业信息库服务器,它本身也是一个Production,完全由Message Bank服务组成,接收来自任何数量的客户Production提交的消息、日志等。
客户端Operation(Message Bank Operation),将其添加到一个正在运行的Production中,并用企业信息库服务器的地址进行配置。如连接通畅,消息和日志即可自动转发到Message Bank并在其中存储。
为了使你能方便地看到信息库中的信息,InterSystems IRIS®提供了以下附加选项。
对于企业信息库实例,管理门户自动包括企业监控器页面,在那里你可以监控客户端Production的状态,浏览消息库,并对被监控客户的消息进行检索。
对于每个客户端实例,你在消息库实例中配置一个到企业监控器的链接。
如下所示:

在使用IRIS互操作性时,对于生产环境,为保障其有充足的磁盘空间和即时查询的效率,通常会采用消息和日志过期策略。在生产环境中只保留近期(如一个月)的信息以备回溯,过期数据将定期被清除。
IRIS提供了用于对应用程序进行单元测试的类的%UnitTest包。该包为快速开发单元测试类、执行测试和创建报告提供了便利。可以直接使用该包,也可以扩展其类来自定义单元测试工具。%UnitTest在结构上与用于单元测试的xUnit框架非常相似。熟悉这些框架的开发人员使用%UnitTest会特别容易。
本教程提供对%UnitTest包的快速实践介绍。本教程的第一部分和第二部分是相互独立的,可以按任何顺序完成。
注意:本教程假定基本熟悉ObjectScript和InterSystems IRIS的面向对象开发。
下一期系列将用一个月的时间连载,《Caché 网络实用工具》,敬请期待。
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-f9VqwzNP-1608850948003)(3E1D939266954ED48BDAEA9B8086B11E)]](https://img-blog.csdnimg.cn/20201225070433434.png)
那些已经与ECP合作过的人可能知道它不仅在操作系统,处理器技术(big-little-endian),但在C / E的各个版本中也有限制。
此交叉版本功能还包括IRIS(针对2020.1进行了验证)和C / E(2018.3)
我面临着同时在IRIS和CACHÉ上开设一堆课程的挑战
直到所有系统都迁移到IRIS。
在Caché开发环境中应用更改并迁移到IRIS没问题
但是,如果我必须对IRIS进行修复,似乎没有干净的方法可以返回Caché。
以通常的方式执行新的单元测试。
^UnitTestRoot的值设置为包含测试类的目录的父级:USER> Set ^UnitTestRoot="c:\unittests"
%UnitTest.Manager执行测试:USER> Do ##class(%UnitTest.Manager).RunTest("mytests")
===============================================================================
Directory: C:\unittests\mytests\cls\MyPackage\
===============================================================================
mytests\cls\MyPackage begins .
Load of directory started on 01/09/2018 14:36:57 '*.xml;*.XML;*.cls;*.mac;*.int;*.现在使用%UnitTest.Manager.RunTest执行单元测试。以下是方法:
^UnitTestRoot全局值设置为包含导出的测试类的目录的父级。DHC-APP>Set ^UnitTestRoot="d:\Temp"
%UnitTest.Manager.RunTest执行测试。DHC-APP>do ##class(%UnitTest.Manager).RunTest("test")
XML文件加载测试类,编译类,执行测试,从服务器删除测试代码,并向终端发送报告。HC-APP>do ##class(%UnitTest.Manager).RunTest("test")
===============================================================================
Directory: D:\Temp\test\
===============================================================================
test begins .本教程的第二部分介绍了如何使用%UnitTest包对InterSystems IRIS代码进行单元测试。完成本教程的这一部分后,将能够:
%UnitTest包中三个主要类的角色。%UnitTest包的单元测试类和方法的要求。%UnitTest.Manager创建的测试报告。%UnitTest.TestCase方法初始化和还原数据库数据。%UnitTest包是一组为IRIS提供测试框架的类。在结构上,它类似于xUnit测试框架。%UnitTest为创建和执行以下各项的单元测试提供类和工具:
以下是创建和执行一套单元测试的基本步骤:
%UnitTest.TestCase的测试类(或多个测试类)。AssertX宏)。每个测试方法名称都以Test开头。本教程的第一部分概述了单元测试。完成本教程的这一部分后,将能够:
%UnitTest包和xUnit测试框架之间的相似性。单元测试是对单个代码模块的正确性的测试,例如,方法或类的测试。通常,开发人员在开发代码时为其代码创建单元测试。典型的单元测试是一种执行方法的方法,该方法测试并验证该方法是否为给定的一组输入生成了正确的输出。
单元测试不同于集成测试。集成测试验证了一组代码模块交互的正确性。单元测试仅单独验证代码模块的正确性。一组代码模块的集成测试可能会失败,即使每个模块都通过了单元测试。
单元测试提供了许多好处,包括:
单元测试框架是为开发和执行单元测试提供支持的类包。
经过快一个月的连载 《Caché Global》 共12篇。对于刚接触M的语言的同学,由浅入深帮助你快速进步,对于老手,丰富更多的细节
涵盖以下主题:
对于某些操作,可能需要全局变量的功能,而不需要无限期保存数据。例如,可能希望使用全局对某些不需要存储到磁盘的数据进行排序。对于这些操作,InterSystems IRIS提供了临时全局机制。该机制的工作方式如下:
IRISTEMP数据库,该数据库是一个特殊的数据库,如下所述。例如,可以定义一个全局映射,以便将名称为^AcmeTemp*的所有全局变量映射到IRISTEMP数据库。
例如,要保存值,代码可能会执行以下操作:
set ^AcmeTempOrderApp("sortedarray")=some value
然后,稍后代码可能会执行以下操作:
set somevariable = ^AcmeTempOrderApp("sortedarray")
通过使用临时全局变量,可以利用IRISTEMP数据库没有日志记录这一事实。因为数据库没有日记记录,所以使用该数据库的操作不会产生日记文件。日志文件可能会变得很大,并可能导致空间问题。但是,请注意以下几点:
不能回滚修改IRISTEMP数据库中的全局变量的任何事务;此行为特定于IRISTEMP。
Intersystems RIS 机器学习工具包, 包括Python/R/Julia, 支持协调管理基于云的高级分析服务,如微软Azure数据工厂和机器学习。

我找不到在Internet上连接到InterSystems Iris的spark或Kafka的情况。是否可以共享任何相关资源?
2020 年席卷全球的新冠疫情使每个人都在关注与 COVID-19 有关的新闻和数字。
为什么不趁这个机会去创造一些简单直观的东西,来帮助关注全球的疫苗接种数量呢?
为了应对这一挑战,我使用了 Our World in Data 提供的数据,他们的使命是提供解决全球最大问题所需的研究和数据。
他们在 Github 上有一个专门的 COVID-19 数据仓库,我采用了疫苗接种数据来完善我的跟踪器。
如果你不了解他们,去调查一下吧,这值得你花上一些时间。 Github 仓库
应用程序 iris-vaccine-tracker 有三个不同页面。
主仪表板提供全球疫苗接种情况的快速概览。
第一个小组件提供以下信息:
第二个小组件提供了一个疫苗接种时间线视图,其中包括疫苗接种数量最多的前 10 个国家/地区。
第三个小组件提供了排名靠前的国家/地区的条形图,显示迄今为止的疫苗接种总数。
最后一个小组件展示疫苗的分布情况,哪些疫苗正在被使用以及所占的百分比。
![]()
数据表显示主仪表板汇总数据的详细信息。
![]()
热图是一种不同的视图,它使用我们已经在主仪表板和数据表中使用的信息,但现在使用 Country 持久化表提供的详细信息。
“查找全局变量字符串”页使可以在下标或选定全局变量的值中查找给定的字符串。
要访问和使用此页,请执行以下操作:
然后,页面显示选定全局变量中下标或值包含给定字符串的第一个节点或所有节点。该表左侧显示了节点下标,右侧显示了相应的值。
注意:在进行任何编辑之前,请确保知道IRIS使用哪个全局系统,以及应用程序使用哪个全局系统;参见“一般建议”此选项会永久更改数据。不建议在生产系统中使用。
出于开发目的,“查找全局字符串”页面还提供了对全局节点中的值进行整体更改的选项。要使用此选项:
“查找全局变量字符串”页使可以在下标或选定全局变量的值中查找给定的字符串。
要访问和使用此页,请执行以下操作:
然后,页面显示选定全局变量中下标或值包含给定字符串的第一个节点或所有节点。该表左侧显示了节点下标,右侧显示了相应的值。
注意:在进行任何编辑之前,请确保知道IRIS使用哪个全局系统,以及应用程序使用哪个全局系统;参见“一般建议”此选项会永久更改数据。不建议在生产系统中使用。
出于开发目的,“查找全局字符串”页面还提供了对全局节点中的值进行整体更改的选项。要使用此选项:
大家好!
目前产品应用MIRROR来保证医院业务正常运行,但是其中MIRROR同步信息不包含(web应用配置信息、任务计划、sql网关等等),关于这些信息同步我们有没有更好的处理解决这个问题?其中,如果想要将代码等关键信息(可以作为业务恢复)进行跨服务器备份,比如:突发状况双机服务器无法恢复并提供服务,需要恢复生产业务,可利用这些备份信息可以快速恢复业务,应对这一类场景有没有好的解决方案?
期待解惑.
关键字:IRIS, IntegratedML, 机器学习, Covid-19, Kaggle
最近,我注意到一个用于预测 Covid-19 患者是否将转入 ICU 的 Kaggle 数据集。 它是一个包含 1925 条病患记录的电子表格,其中有 231 列生命体征和观察结果,最后一列“ICU”为 1(表示是)或 0(表示否)。 任务是根据已知数据预测患者是否将转入 ICU。
这个数据集看起来是所谓的“传统 ML”任务的一个好例子。数据看上去数量合适,质量也相对合适。它可能更适合在 IntegratedML 演示套件上直接应用,那么,基于普通 ML 管道与可能的 IntegratedML 方法进行快速测试,最简单的方法是什么?
本贴提供了在 VMware ESXi 5.5 及更高版本的环境中部署 Caché 2015 及更高版本时,关于配置、系统规模调整和容量规划等方面的指南。
我假定您已经了解 VMware vSphere 虚拟化平台,所以直接给出推荐。 本指南中的推荐不特定于任何具体硬件或站点特定的实现,也不应作为规划和配置 vSphere 部署的全面指南,而是一份您可以做出选择的最佳实践配置清单。 我希望您的 VMware 专家实施团队能针对具体站点对这些推荐进行评估。
这里是 InterSystems 数据平台和性能系列的其他帖子的列表。
_注:_本帖更新于 2017 年 1 月 3 日,强调必须为生产数据库实例设置虚拟机内存预留,以保证 Caché 有足够内存可用,并且不会出现内存交换或膨胀而对数据库性能产生负面影响。 更多详细信息,请参见下面的内存部分。
在本帖中,我将展示使用_外部备份_来备份 Caché 的策略,以及与基于快照的解决方案集成的示例。 如今,大多数解决方案部署在基于 VMware 的 Linux 上,因此许多帖子都以展示解决方案如何集成 VMware 快照技术为例。
Caché 安装后即包含 Caché 在线备份,可提供不间断的 Caché 数据库备份。 但随着系统规模的扩大,您应该考虑更高效的备份解决方案。 集成了快照技术的_外部备份_是推荐的系统(包括 Caché 数据库)备份解决方案。
外部备份的在线文档包含了全部详细信息。 一个关键考虑事项是:
“为确保快照的完整性,Caché 提供了在创建快照时冻结数据库写操作的方法。 在创建快照期间,只冻结对数据库文件的物理写入,从而允许用户进程继续在内存中不间断地执行更新。”
还需要注意的是,虚拟化系统上的部分快照过程会导致正在备份的虚拟机短暂暂停,这段时间通常称为关闭时间。 该时间通常不到一秒,因此不会被用户注意到,也不会影响系统运行,但在某些情况下,关闭时间可能较长。 如果关闭时间长于 Caché 数据库镜像的 QoS 超时时间,那么备份节点将认为主节点出现故障,并将进行故障转移。 在本帖的后面部分,我将说明在需要对镜像 QoS 超时时间进行更改时如何查看关闭时间。
部分 在上个帖子中,我们安排了使用 pButtons 进行 24 小时的性能指标收集。 在本帖中,我们将研究几个收集到的关键指标,以及它们与底层系统硬件的关系。 我们还将开始探索 Caché(或任一 InterSystems 数据平台)指标与系统指标之间的关系。 以及如何使用这些指标来了解系统的每日节拍率并诊断性能问题。
本周,我将关注 CPU - 主要硬件食物群之一 :) 一位客户请我就以下情况提供建议:他们的生产服务器已接近使用寿命终止,是时候更新硬件了。 他们还考虑通过虚拟化来整合服务器,并希望适当调整裸机或虚拟机的容量规模。 今天我们将关注 CPU,在后面的帖子中,我将介绍适当调整其他主要食物群(内存和 IO)规模的方法。
所以问题是: