亲爱的社区开发者们,大家好!
欢迎积极参与新一轮InterSystems系联开发者竞赛!
时间: 2021年10月4日--24日
总奖金池高达 9,450美金!
InterSystems IRIS 是一个完整的数据平台
InterSystems IRIS 为您提供了捕获、共享、理解组织最宝贵的资产(数据)并采取相应行动所需的一切。
作为一个完整的平台,InterSystems IRIS 不需要集成多种开发技术。应用程序需要更少的代码、更少的系统资源和更少的维护。
亲爱的社区开发者们,大家好!
欢迎积极参与新一轮InterSystems系联开发者竞赛!
时间: 2021年10月4日--24日
总奖金池高达 9,450美金!
目录
技术概要: Globals
本文档向您介绍了 globals 的概念,globals是 InterSystems IRIS®数据平台的底层存储结构。我们将向您展示如何使用关系模型和对象模型访问 globals,以及如何直接访问 globals。
要浏览所有的技术概要(First
CodeMirror { height: auto; } .CodeMirror.cm-s-inner { background-image: inherit; background-size: inherit; background-attachment: inherit; background-origin: inherit; background-clip: inherit; background-color: inherit; background-position: inherit; background-repeat: inherit; } .CodeMirror-scroll { overflow: auto hidden; z-index: 3; } .CodeMirror-gutter-filler, .CodeMirror-scrollbar-filler { background-color: rgb(255, 255, 255); } .
本文档将帮助您使用 InterSystems IRIS®数据平台集成产品转换数据。
要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些, 请参见 InterSystems First Looks(《InterSystems 技术概要》)。
数据转换是 InterSystems IRIS 互操作性的核心。您可以改变从一个系统传入的数据的格式和内容,以满足下游系统的要求,从而允许系统之间进行通信。简单地说,从一个系统发送的信息可以转换为另一个应用程序可以理解的信息。使用 InterSystems IRIS,可以很容易地进行数据转换的创建、测试和维护。
假设您有两个包含产品价格的零售系统。当系统 A 向其他系统发送数据时,包含了不加税的产品基准价格。但是,系统 B 需要在价格中包含地区税。InterSystems IRIS 互操作性产品中的数据转换可以在将数据发送到系统 B 之前将从系统 A 收到的价格转换为加税价格。一旦定义,数据转换将自动处理修改。
常见的转换包括:
技术概要:ODBC 和 InterSystems 数据库
如果您希望在 InterSystems IRIS®数据平台上使用 ODBC,本文将介绍如何设置它。
要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems 技术概要(InterSystems First Looks)。
1 ODBC: 如何在 InterSystems IRIS 中使用它
InterSystems 提供了一个完全兼容的(ODBC 3.5)ODBC 驱动程序,您可以使用它通过 ODBC 访问 InterSystems IRIS 数据库。当您安装 InterSystems IRIS 时,默认安装该驱动程序。
为了开始在 InterSystems IRIS 中使用 ODBC,您只需要在 InterSystems IRIS 实例上配置驱动程序。本技术概要(First Look)文档对这一过程进行了概述。
如果您还不熟悉 ODBC,请参见本文档末尾的 "了解更多信息" 一节中的链接,以获得更多信息。
2 用前须知
要使用这个程序,您需要一个安装了 InterSystems IRIS 实例的 Windows 系统。
InterSystems IRIS 基础:连接一个 IDE
本文档告诉您如何快速连接您的集成开发环境(IDE),用于 ObjectScript、Java、.NET、Python 或 JavaScript/Node.js 的集成开发环境连接到 InterSystems IRIS® 的一个实例,并使用从 GitHub 下载的模板文件验证您是否已经成功连接。
此外,接下来的两节还包括以下内容:
• 部署 InterSystems IRIS
列出用于部署 InterSystems IRIS 的已授权和免费评估实例的选项。如果您还没有一个可以使用的实例,请查看本节。
• InterSystems IRIS 连接信息
详细介绍了将 IDE 连接到已授权或免费的 InterSystems IRIS 实例,以及以其他方式与之进行交互所需的信息 ,并解释了如何获得实例的信息。无论您想用哪个 IDE 连接到 InterSystems IRIS,都要查看涉及您所使用的实例类型的部分。
1 部署 InterSystems IRIS
本节涵盖了已授权的实例和免费的评估实例。
1.
连接系统可以让一个系统处理来自非本系统的信息。例如,以下场景需要连接系统:
将系统连接在一起时,您可能会面临一些挑战,例如:
虽然可以编写自定义应用程序来连接系统,但开发一款InterSystems IRIS® 产品要容易得多,也快得多。
InterSystems IRIS 提供了一个框架,允许连接系统,并最大限度地减少或消除对自定义代码的需求。
InterSystems IRIS Production是一个集成框架,用于轻松连接系统和开发互操作性应用程序。产品Production提供包含各种消息格式和通信协议的内置连接。
技术概要(First Look)有助于您了解在InterSystems IRIS ®数据平台中如何使用SQL:标准的SQL功能、特有功能以及如何快速上手使用。
要体验技术概要(First Look)的所有内容 ,您可以在InterSystems IRIS的免费评估实例上执行相关操作 ,请参阅InterSystems First Looks(《InterSystems 技术概要》)。
InterSystems IRIS 提供高性能、功能完善的 SQL。在 InterSystems IRIS 中使用SQL,包括在单个CPU内核上运行查询,到使用数十个内核的CPU上并行执行查询,已至在InterSystems IRIS服务器集群上运行分布式查询。
在InterSystems IRIS中,可以使用 SQL 的范围包括:
InterSystems SQL提供了强大的工具来实现最佳的SQL查询性能。
Object Script(四)
面向脚本
类的主要类型
|
类型
|
适用目的
|
|
Persistent
|
持久化对象, 够将对象保存到数据库中(写入磁盘),单独存储.
|
|
Serial
|
在持久化对象内部存储的对象,随持久化对象存储,不单独存储.
在给此对象中的属性赋值之前,不需要调用%New()来创建新的对象。如果此对象的属性包含在一个持久化类中,那么此对象的属性将被存储在持久化类的范围内。
|
|
Registered |
临时的类和对象,不持久化(方法会保存).
|
|
Abstract |
当类的属性被设置为abstract的时候,该类即被声明为抽象类,不能被实例化.
|
|
Datatype
|
数据类型,只包含数据验证和转换的方法.
|
|
CSP |
用于处理HTTP事件
|
类成员
|
类型
|
适用目的
|
|
Properties
|
一个属性包含类的一个实例的数据.
|
|
Methods
|
实例方法和类方法(在其他语言中称为静态方法)。 |
技术概要:ObjectScript
本文档将向您介绍 ObjectScript 编程语言,并提供了几个示例,说明如何使用它来存储和检索来自 InterSystems IRIS®数据平台的数据。本技术概要(First Look)并不试图提供对该语言或其功能的全面概述。您可以使用本文件末尾列出的参考资料,继续您的探索。
要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems First Looks(《InterSystems 技术概要》)。
ObjectScript 是一种编程语言,用于在 InterSystems IRIS 数据平台上快速开发复杂的业务应用。ObjectScript 源代码被编译成 object 代码,该代码可针对业务应用程序中的典型操作(包括字符串操作和数据库访问)进行高度优化。
ObjectScript 的独特之处之一是它的底层存储结构,即所谓的 globals。Globals 可以被认为是持久的多维稀疏数组。ObjectScript 允许您直接从 globals 访问数据,但也允许您通过其本机 object 和 SQL 支持来访问这些数据。
本指南可帮助您成功在桌面或虚拟机上运行一个经授权许可的 InterSystems IRIS®。适用于我们在技术概要
(First Look)操作指南里所提及的技术。
我们提供的说明包括64位 Windows 10, Red Hat 企业版Linux7,以及Apple macOS10.13.
注: InterSystems 云管理器(ICM)提供了一种简单、直观的方法来配置云或虚拟基础架构,用户可在该基 础架构上部署所需的 InterSystems IRIS架构以及其他服务。
请勿使用本指南安装生产实例或任何自定义安装配置;如需帮助,请参阅InterSystems Cloud Manager Guide(《InterSystems 云管理器指南》)或Installation Guide(《安装指南》)。
在开始安装 InterSystems IRIS之前,请确保:
• 计算机上的完整管理员权限或sudo权限。
• 访问InterSystems IRIS的单文件的可执行安装文件(Windows)或工具包(Linux和macOS)。 • 在IRIS可访问的文件夹下存放有效的许可证密钥文件,通常命名为iris.key。
您正在使用的技术概要(First Look)中对安装有特定要求;例如,可能需要“正常”安全性。
Object Script(三)
面向脚本
可将routine看做全局可调用的函数,一个函数是一个执行程序(Roution),它执行一个操作(例如,将一个字符串转换为其对应的ASCII码值)并且可以返回一个值。
Routine可以有一个标签,ObjectScript代码,以及结尾的注释,所有这些元素都是可选的。可以使用";"或"//"来表示注释。对于多行注释,用"/*"标记注释的开头,用 "*/"标记注释的结尾。
标签
ObjectScript代码
end
打开Studio,点击左上角新建文件。选择General->ObjectScript Routine
将下段代码填写入建好的Routine。
hello ; hello world routine write !, "hello world" write !, "bye" end quit ; end
Terminal调用:
打开Terminal,执行下段代码,即可检查结果。
do ^hello亲爱的社区开发者们,大家好!
InterSystems 开发者竞赛(InterSystems IRIS Analytics) 现已圆满结束!感谢大家的参与支持!
现在是揭晓优胜者的时刻了!
这些开发者和他们的应用程序赢得了雷鸣般的掌声:
亲爱的社区开发者们,大家好!
我们诚挚地邀请您参加与InterSystems开发者竞赛(InterSystems IRIS Analytics)竞赛优胜者交流 online meetup!
日期 & 时间: 美国东部时间2021年9月17日(周五)12:00;北京时间2021年9月18日(周六)0:00-1:00
在此次线上交流会上,您将了解到:
背景:在实际场景中,处理历史数据问题会出现数据暴增的情况,在此情景下journal文件会暴增从而出现磁盘被沾满的风险,因此需要对journal进行删除。
步骤:
1.点击【系统操作】->【任务管理器】->【新任务】创建定时任务。
2.按下图输入参数
重要参数:
任务运行所在的 命名空间:%SYS
任务类型:运行传统任务
执行代码:do ##Class(%SYS.Journal.File).PurgeAll()
4.点击【完成】
备注:此任务在数据暴增情况结束后应挂起。
InterSystems IRIS/Caché未提供开箱即用的变更数据捕获(CDC)工具,而且由于其多模型建模能力和底层的多维存储模型,相对于关系型数据库的单一模型,针对于SQL的CDC在InterSystems IRIS/Caché上会更复杂一些。例如通过Journal日志记录的是底层持久化多维数组的数据变更,而不是SQL table的变更。
通常,在应用层面实现变更数据捕获是更灵活和简单的方式,例如通过设置触发器、类的DSTIME参数。但如果无法在应用层做CDC,可以考虑使用InterSystems IRIS/Caché的Journal和强大的开发能力获取数据变更。
这里介绍使用InterSystems IRIS/Caché的Reporting类型的异步镜像成员获取数据变更。
本文档将您介绍InterSystems IRIS®数据平台的分片(sharding)功能,以及它在分片集群中的使用,以水平扩展 InterSystems IRIS 的数据量。
作为本指南的一部分,您将使用 ICM 在公共云中提供的分片集群,并了解分片表(sharding a table)如何在集群中的分片之间分布其行。
您感受到大数据(Big Data)的热度了吗?
无论是否准备好了,我们都在管理比以往任何时候都多的数据,并被要求用这些数据做更多的事情——所需的响应时间也越来越短。无论您是照顾一千万名患者、每天处理数十亿的金融订单,追踪一个星系的恒星,还是监控一千个工厂的引擎,数据平台不仅要支持您目前的数据工作量,而且还必须在保持性能的同时进行扩展(Scale),以满足不断增长的需求,避免业务中断。每个特定业务的工作量对其运行的数据平台提出了不同的挑战 — 而随着工作量的增加,这些挑战将变得更加严峻。
InterSystems IRIS 包含一套全面的功能来扩展(Scale)您的应用程序,这些功能可以单独或组合应用,这取决于您的工作量的性质和它所面临的特定性能挑战。其中之一是分片(sharding),它在多个服务器上对数据及其相关缓存进行分区,为查询和数据摄取提供灵活、价优的性能扩展,同时通过高效的资源利用使基础设施价值最大化。
本文档介绍了 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) 来自动化这个过程。
现在用的数据库是2019版IRIS,webgateway用的是2021版iris带的,nginx 进行了编译,可以支持NSD,但现在使用nginx+NSD 访问iris后7038端口会有大量的tcp连接没有释放,是处理time_wait状态。这种问题该怎么解决?
2021 年 8 月的学习资料现在可以在learning.intersystems.com上独家获取!您可以:
注意:老是错过最新消息?别担心,我们会在9月恢复正常的邮件发送。
InterSystemsIRIS® 数据平台在性能、分析/搜索和事务等标准中获得最高分
转载自Forester 报告:
InterSystems是一个高性能的数据平台,具有强大的支持和可靠性。InterSystems的IRIS数据平台支持关系型、对象型、文档型、键值型、立方体和多维数组,但它没有原生的图形功能。该平台不需要整合多种技术栈,从而减少了代码、系统资源和维护。客户用它来支持客户分析、物联网、支持AI/ML的应用程序、风险分析和垂直特定的用例,如医疗保健应用程序和洞察力。InterSystems的愿景侧重于一个统一的平台,以支持各种应用和洞察力。该解决方案在性能、分析、搜索和交易方面得分很高。参考客户对InterSystems很满意;一个客户说:"他们的客户支持总是超级好。"另一个客户说他们 "在一个关键任务的应用中使用了10多年,对性能和功能以及可靠性总体上很满意。"
Forester 报告原文下载:https://reprints2.forrester.com/#/assets/2/1735/RES161621/report
.png)
请教一下,我使用两个iris实例搭建了镜像,再将数据库同步后,备机出现了数据库无法激活的问题,报错:Database could not be activated because Write Daemon could not update mirror block。该如何解决
Object Script(二)
ObjectScript没有定义任何保留字:你可以自由地使用任何字作为标识符(如变量名)。为了达到这个目的,ObjectScript使用了一组内置的命令以及特殊的字符(比如函数名的"$"前缀),以便将标识符与其他语言元素区分开来。
Object Script(一)
ObjectScript是一种用于在InterSystems IRIS数据平台上快速开发编程语言,它是面向对象的弱类型脚本语言,非常适用于各种应用,包括业务逻辑、应用集成和数据处理。
在这里,我将主要介绍ObjectScript的命令脚本,类,方法和Routine等使用方式和语法规范。如有任何疑问,可在InterSystems开发者社区进行深入讨论。
可以使用InterSystems IRIS内置的Studio或Visual Studio Code(需要安装Object Script扩展)来查看和编辑代码。这里我们使用InterSystems IRIS内置Studio来做示例。
如果你已安装InterSystems IRIS或者InterSystems HS 等任何InterSystems产品,找到右下角的图标
,单击鼠标右键,点击Studio,如下图所示:

输入用户名和密码(用户名:superuser 密码:安装时自己设置的密码),即可进入到Studio开发环境,如下图所示:
可以直接打开InterSystems IRIS的终端尝试执行ObjectScript的简单指令。
这是一个IRIS 2020.2上的代码示例,并非InterSystems 官方支持!
本demo基于原始类描述 is based on the raw class descriptions.
使用的数据类是Address, Person, Employee, Company
如果要做更有吸引力的 demo, 可以添加 JSONtoString by ID的方法
用ZPM安装后从终端启动:After installation with ZPM just run from Terminal
USER>do ##class(rcc.ONAPI.demo).Run()
Adjust Parameters
host[127.0.0.1]:
port[51773]:
namespace[USER]:
user[_SYSTEM]:
pwd[SYS]:
timeout[5]:
****** connected ********
下一步, 你会得到一系列可能的Demo动作。you get a list of possible demo actions.
没有输入就意味着没有动作No input means no action.
菜单会一直循环直到退出The menu loops until you exit.
亲爱的社区开发者们,大家好!
欢迎积极参与新一轮InterSystems开发者竞赛!
🏆 InterSystems开发者竞赛:InterSystems IRIS Analytics 🏆
竞赛时间:2021年8月23日-9月12日
奖金总额: $8,750
登录页面即可参赛: https://contest.intersystems.com
可以使用%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.001B) %SYS.Journal.Record类中的List查询
这个查询可以从指定journal日志文件中获取日志记录
USER>set rs2=##class(%ResultSet).
亲爱的社区开发者们,大家好!
我们真诚邀请您参加 Online Meetup:InterSystems 开发者竞赛(人工智能与机器学习)!
时间: 2021年7月30日(周五) 11:00 AM (美东时间)23:00 (北京时间)
在这场在线Meetup,您将了解到: