清除过滤器
文章
Michael Lei · 一月 17, 2023
每秒插入大量记录,同时同步进行实时查询的能力称为**混合事务分析处理 (HTAP)**。 它也被称为 Transactional analytics 或 Transanalytics 或 Translytics,当存在来自工业物联网传感器的持续实时数据流或股票市场的波动数据时,它是非常有用的技术,并且允许实时或接近实时地查询这些数据集。
在本文中我将分享我在不同平台上运行带有测试流数据的演示,同时进行持续插入和持续查询,看看每个平台上有何不同反应,如在每个平台上输入和输出数据的速度以及它们的性能。 我在本演示中试验的平台包括:InterSystems IRIS、MariaDB 和 MySQL。
试验结果
20秒的测试时间里:
| | 插入数据条数 | 查询次数 | 插入数据大小 | 查询数据大小 |
| --- | ------ | ---- | ------ | ------ |
| IRIS | 708,000 | 59,000 | 184M | 15.217M |
| MariaDB | 98,000 | 23,679 | 25M | 6.69M |
| MySQL | 38,000 | 11,947 | 9.869M | 2.45M |
本演示的视频:
需要环境
Docker 和 Docker Compose
本地运行
我们在三个不同的平台(MySQL、MariaDB 和 InterSystems IRIS 社区版)上运行记录的摄取和查询速度测试。
为此,需要按如下所示为每个平台下载容器的 YAML 文件:
1. 使用 MySQL 运行速度测试
1. 下载 YAML 文件:
2. 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 MySQL 构建 docker 镜像:**docker-compose -f ./docker-compose-mysql.yml up**
3. 在浏览器选项卡中输入 以查看演示 UI。
2. 使用 MariaDB 运行速度测试
1. 下载 YAML 文件:
2. 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 MariaDB 构建 docker 镜像:**docker-compose -f ./docker-compose-mariadb.yml up**
3. 在浏览器选项卡中输入 以查看演示 UI。
3. 使用 InterSystems IRIS 运行速度测试
1. 下载 YAML 文件:
2. 在上述 YAML 文件所在的文件夹中打开命令提示符并运行命令,为 InterSystems IRIS 构建 docker 镜像:**docker-compose up**
3. 在浏览器选项卡中输入 以查看演示 UI。
从 localhost 运行测试后,可以看到以每秒钟摄取和查询的记录数形式显示的结果。
与 MySQL 和 MariaDB 相比,InterSystems IRIS 的数值更令人印象深刻。
异常
在尝试为每个平台运行 docker 容器时,可能会出现以下错误:
“Missing Linux capabilities”(缺少 Linux 功能)
![](/sites/default/files/inline/images/error_4.png)
可以在 YAML 文件的 htapirisdb 部分添加以下行,以跳过 Linux 功能检查:
**command: --check-caps false**
_(@Robert.Kuszewski, 2022)_
__如下所示:![](/sites/default/files/inline/images/ss_0.png)
每个平台上的实时测试运行:
每个平台的速度测试结果
InterSystems IRIS:
![](/sites/default/files/inline/images/iris.png)
MariaDB:
![](/sites/default/files/inline/images/mariadb.png)
MySQL:
![](/sites/default/files/inline/images/mysql.png) 参考文献
1. [intersystems.com](http://intersystems.com). (Amir, S.). _InterSystems Open Exchange_. [在线] 网址: [访问日期:2022 年 9 月 20 日]。
2. Kuszewski, B. (2022). _[在 Docker 20.10.14+使用 InterSystems IRIS 容器_.](https://cn.community.intersystems.com/post/在-docker-201014-使用-intersystems-iris-容器) [在线] InterSystems 开发者社区。 英文原文: [访问日期:2022 年 10 月 20 日]。
公告
Claire Zheng · 四月 19, 2023
为支持医疗信息行业人才发展,InterSystems 为中国市场量身定制了贴近需求、灵活、实操性强的技术认证培训计划,由 InterSystems 资深技术专家亲自授课,帮助用户快速掌握 InterSystems 技术,确保用户从快速发展的 InterSystems 技术中获益,以更好地服务于医院信息化建设。点击此处查看课程详情:InterSystems中国技术培训认证
您的最佳学习路径
为什么要参加 InterSystems 技术认证培训?
InterSystems 数据平台技术已成为国内医疗信息化领域的主流技术之一,支持全国数百家大型公立医院核心系统长期稳定运行 20 余年;
专为中国技术用户量身定制,具有贴近需求、灵活、实操性强等特点;
InterSystems 资深技术专家亲自授课,帮助用户快速掌握 InterSystems 技术及最佳实践;
InterSystems 官方技术认证培训具备更高权威性,可以助力用户更好地运用 InterSystems 技术,并从快速发展的 InterSystems 技术中获益,保持技术先进性。
哪些用户可以参加认证培训?
凡使用 InterSystems 技术或对 InterSystems 技术感兴趣的IT从业人员或机构均可参加。
您可以从技术认证培训中获得哪些技能和成长?
与时俱进的课程更新,理论与实践相结合的学习方式,可以帮助您持续提升对 InterSystems 技术的掌握;
参与 InterSystems 的分级培训计划,考核通过即可获得认证证书;
通过线下课程与活动,拓展技术人脉。
InterSystems 中国的认证培训讲师团成员是哪些?
InterSystems 中国资深工程师团队授课。
报名方式及开课时间是如何安排的?
报名人数满 5 人即开班,每季度一次,培训方式为线下培训,考试内容含书面测试与上机实践。课程收费请咨询您的 InterSystems 客户经理。医院及医疗信息化企业推荐以机构方式参与培训。
如需报名或咨询更多详情,请联系您的 InterSystems 客户经理,或通过以下方式与 InterSystems 中国团队联系:
电话:400-601-9890
邮件:GCDPsales@InterSystems.com
文章
Nicky Zhu · 一月 10, 2021
当您首次使用InterSystems IRIS时,通常只需安装最低安全级别的系统。您输入密码的次数会比较少,这样有利于快速了解和操作开发服务和Web应用程序。而且,最低的安全性有时更便于部署开发项目或解决方案。
然而,有时需要将项目移出开发环境,迁移到一个可能很不友好的互联网环境中。在部署到生产环境之前,需要使用最大的安全设置(即,完全锁定)对其进行测试。这就是我们在本文中将要讨论的内容。
如果想更全面地了解InterSystems Caché、Ensemble和IRIS中的DBMS安全性问题,请阅读我的另一篇文章《[在生产环境中安装InterSystems Caché DBMS的相关建议](https://community.intersystems.com/post/recommendations-installing-intersystems-cach%C3%A9-dbms-production-environment)》。
InterSystems IRIS中安全系统的设计概念是针对不同的类别(用户、角色、服务、资源、特权和应用程序)应用不同的安全设置。
![image](/sites/default/files/inline/images/picture1_2.png)
可以为用户分配角色。用户和角色可以对资源(数据库、服务和应用程序)拥有不同的读、写和使用权限。用户和角色还可以对数据库中的SQL表拥有SQL权限。
# 安全级别的差异
用户在安装InterSystems IRIS时,可以为其选择安全级别:最小、正常或锁定。这些级别在用户参与程度、可用角色和服务,以及服务和应用程序的身份验证方法的配置方面存在差异。如需了解更多信息,请阅读《InterSystems IRIS安装准备》指南中的《InterSystems安全性准备》章节。
在文档中,您可以找到下面这些表格,其中显示了每个级别的安全设置。这些安全设置可以在系统管理门户界面进行更改。
## 初始用户安全设置
|Security Setting | Minimal | Normal | Locked Down |
|--------------------------------------------|--------------|--------------|----------------------|
|Password Pattern |3.32ANP |3.32ANP |8.32ANP |
|Inactive Limit |0 |90 days |90 days |
|Enable _SYSTEM User |Yes |Yes |No |
|Roles assigned to UnknownUser |%All |None |None |
## 初始服务属性设置
|Service Property |Minimal|Normal|Locked Down|
|-----------------------------------|-----------|----------|------------------|
|Use Permission is Public |Yes |Yes |No |
|Requires Authentication |No |Yes |Yes |
|Enabled Services |Most |Some |Fewest |
## 初始服务启用设置
|Service | Minimal | Normal | Locked Down |
|-----------------------------------|--------------|-------------|---------------------|
|%Service_Bindings | Enabled | Enabled | Disabled |
|*%Service_CSP | Enabled | Enabled | Enabled |
|%Service_CacheDirect | Enabled | Disabled | Disabled |
|%Service_CallIn | Enabled | Disabled | Disabled |
|%Service_ComPort | Disabled | Disabled | Disabled |
|%Service_Console | Enabled | Enabled | Enabled |
|%Service_ECP | Disabled | Disabled | Disabled |
|%Service_MSMActivate | Disabled | Disabled | Disabled |
|%Service_Monitor | Disabled | Disabled | Disabled |
|%Service_Shadow | Disabled | Disabled | Disabled |
|%Service_Telnet | Disabled | Disabled | Disabled |
|%Service_Terminal | Enabled | Enabled | Enabled |
|%Service_WebLink | Disabled | Disabled | Disabled |
*InterSystems IRIS环境下,%Service_CSP应用%Service_WebGateway。
不同的操作系统所使用的服务略有不同。
# 如何提高安全性
您需要为每个启用的服务选择合适的身份验证方法,包括:无认证(unauthenticated)、密码、Kerberos或授权。
您还需要禁用系统中未使用的web应用程序。对已启用的web应用程序选择正确的身份验证方法:认证、密码、Kerberos、授权、登录或cookie。
当然,管理员可以为每一个项目和解决方案选择安全设置,以满足客户的项目要求。整个过程应始终保持一种平衡,即,一方面要保证系统足够方便以支持用户完成实际工作,另一方面又要保证系统足够安全能够阻止入侵者。不过众所周知,被禁用的系统才是最安全的系统。
如果遇到需要多次手动提高系统安全级别的情况,这就是一个明确的迹象,表明需要编写一个软件模块来解决这些问题。
实际上,InterSystems Open Exchange提供了一个锁定(LockDown)程序,可以帮助您提高安全性。该程序的源代码可以在InterSystems isc-apptools-lockdown页面的存储库中找到。
LockDown程序有以下几种作用:
## 首先,更改以下预安装用户的密码:
- Admin,
- CSPSystem,
- IAM,
- SuperUser,
- UnknownUser,
- _Ensemble,
- _SYSTEM.
## 其次,禁用除以下服务之外的所有服务:
- %%service_web gateway
- %service_console
- %service_login
- %service_terminal
## 再次,为所有web应用程序设置密码保护,包括:
- /csp/ensdemo
- /csp/samples
- /csp/user
- /isc/studio/usertemplates
- /csp/docbook
- /csp/documatic
- /isc/studio/rules
- /isc/studio/templates
## 最后,设置系统范围内的安全参数,包括:
- 密码复杂度为 "8.32 ANP"
- 限制90天内不活跃的用户
- 开启审计和其他所有安全相关的事件
您可以从GitHub下载LockDown.cls,在系统上安装好LockDown程序。然后在终端输入以下内容:
```
USER>zn “%SYS”
%SYS>do $system.OBJ.Load("/home/irisusr/LockDown.cls","ck")
```
或者可以使用以下命令从公共注册中心通过ZPM批处理管理器进行安装:
```
USER>zn “%SYS”
%SYS> zpm “install isc-apptools-lockdown”
```
# 执行LockDown程序
强烈建议在执行LockDown程序之前先进行备份。
必须从%SYS命名空间执行LockDown程序。如果您不想更改所有预安装用户的密码,请将第一个参数保留为空。
如果希望保留使用IRIS Studio、Atelier或VSCode编辑程序和类的能力,请不要禁用%Service_Bindings服务,只需将bindings参数设置为1即可。下面是一个示例:
`do ##class(App.Security.LockDown).Apply("New Password 123",.msg,1)`
此模块还包含一个功能,该功能在系统密码被盗用、需要替换所有预装帐户但无需执行锁定的情况下很有用。可以参考下面的运行:
`do ##class(App.Security.LockDown).Change Password("New Password 123", "Admin,CSPSystem,IAM,SuperUser,Unknown User, _Ensemble,_SYSTEM")`
在执行锁定之后,应用程序或项目极有可能会停止工作。为了解决这个问题,需要将一些安全设置恢复到原始状态。这个操作可以通过管理门户界面(安全性部分)实现或以编程方式完成。
# 锁定后更改安全设置
锁定之后,如果您的web应用程序使用了密码以外的身份验证方法,就需要进行启用。
建议运行软件模块zpm-registry-test-deployment,它有一个在ZPM-registry项目中使用LockDown的示例。
在IRIS上以最低的安全级别安装该项目,安装结束时将开始运行其中的代码。代码可以用来:
- 更改所有预安装用户的密码。
- 禁用此项目中未使用的所有服务。
- 为系统上的所有应用程序启用密码保护,但Web应用程序/注册表(允许未经授权的用户获取注册表中的软件包列表)除外。
- 创建一个拥有在注册表中发布新包特权的新用户。该用户必须对IRISAPP数据库中的项目表具有写权限。
创建一个新用户:
```
set tSC= ##class(App.Security.LockDown).CreateUser(pUsername, "%DB_"_Namespace, pPassword, "ZMP registry user",Namespace)
If $$$ISERR(tSC) quit tSC
write !,"Create user "_pUsername
```
为新的未授权用户添加权限:
```
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package", "s", "UnknownUser")
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package", "s", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM.Package_dependencies", "s", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "1,ZPM_Analytics.Event", "s", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "9,ZPM.Package_Extent", "e", pUsername)
set tSC=##class(App.Security.LockDown).addSQLPrivilege(Namespace, "9,ZPM_Analytics.Event_Extent", "e", pUsername)
If $$$ISERR(tSC) quit tSC
write !,"Add privileges "
```
运行LockDown项目:
```
set tSC= ##class(App.Security.LockDown).Apply(NewPassSys)
If $$$ISERR(tSC) quit tSC
Change the settings for the web app so that an unknown user can log in:
set prop("AutheEnabled")=96
set tSC=##class(Security.Applications).Modify("/registry",.prop)
If $$$ISERR(tSC) quit tSC
write !,"Modify /registry "
Change the settings for the %service_terminal service, changing the authorization method to Operating System, Password:
set name="%service_terminal"
set prop("Enabled")=1
set prop("AutheEnabled")=48 ; Operating System,Password
set tSC=##class(Security.Services).Modify(name,.prop)
If $$$ISERR(tSC) quit tSC
write !,"Modify service terminal"
```
# 总结
在本文中,我讨论了为何要提高系统安全性级别的原因,并且通过一个InterSystems LockDown程序运行示例,演示了如何通过编程的方式提升安全性。
在本文所介绍的方法中,我们首先关闭了系统中的所有内容(即,设置最大安全级别)。然后通过开放项目运行所需的服务和应用程序(但仅限于这些)来控制安全性。我相信还有许多其他的方法和最佳实践,欢迎大家在文章评论区留言告诉我们。
公告
Claire Zheng · 二月 1, 2021
大家好!
InterSystems IRIS开发者们,我们有一个好消息要跟大家分享! 我们很高兴能够邀请大家参加我们今年的年度大奖赛,利用InterSystems IRIS数据平台创建开源解决方案!
🏆 InterSystems编程大奖赛 🏆
时间: 2021年2月8日 - 3月8日
奖金总额: $16,000
奖项设置
这次我们提升了现金奖励力度! 请看:
1. 专家提名奖(Experts Nomination)- 获奖者由我们特别挑选的专家团选出:
🥇 第一名 - $6,000
🥈 第二名 - $3,000
🥉 第三名 - $2,000
2. 社区提名奖(Community Nomination)- 获得总投票数最多的应用:
🥇 第一名 - $3,000
🥈 第二名 - $1,500
🥉 第三名 - $500
如果同时多位参赛者获得同样的票数,均被视为优胜者,将平分奖金
谁可以参加?
任何开发者社区的成员均可参加,InterSystems内部员工除外。还没有账号?现在来建一个!
参赛时间安排
根据大家的反馈意见,我们做出了调整! 我们为开发留出了更多时间!所以:
🛠 2月8日- 28日: 应用程序开发和注册阶段(在此期间,您可以持续编辑自己的项目)
✅ 3月1日-7日: 投票阶段
🎉 3月8日: 宣布优胜者!
主题
💡 InterSystems IRIS 应用程序 💡
提交使用InterSystems IRIS作为后端(API或数据库)的应用程序,使用任何类型的InterSystems IRIS API或数据模型均可。
我们欢迎您进一步改进您去年在InterSystems系列竞赛中提出的申请,并将其提交参加大奖赛。当然,也欢迎您提交一份全新的申请。
应用程序应该可以在 IRIS Community Edition 或 IRIS for Health Community Edition 或 IRIS Advanced Analytics Community Edition 上运行。
应用程序应该开源并在GitHub上发布。
资源助力
示例程序:
objectscript-docker-template
rest-api-contest-template
native-api-contest-template
integratedml-demo-template
PythonGateway-template
iris-fhir-template
iris-fullstack-template
iris-interoperability-template
iris-analytics-template
如何把您的APP提交给大赛:
如何在 InterSystems Open Exchange 上发布应用程序
如何把参赛APP提交给大赛
公平公正
点击查看 投票规则.
万分期待你的精彩项目!
加入大奖赛吧!
❗️ 点击此处,查看 官方竞赛术语解读. ❗️
顶一下 IRIS 在线培训:https://learning.intersystems.com/
在线实验室Lab:https://learning.intersystems.com/course/view.php?id=929 恭喜发财,大家踊跃报名啊! 这次我们提升了现金奖励力度,欢迎大家积极报名! 投票通道开启,欢迎参赛选手踊跃拉票啊。
https://openexchange.intersystems.com/contest/current
@jingqi.liu @Weiwei.Yang @deming.xu @Botai.Zhang very good 非常棒,都是很好的应用,我会投票的。 积极投票 踊跃投票! 这些应用都是很好的解决方案! 现在这个很火爆,可惜我不会,我也要学习编程了 可以看到这么多优秀的应用,很棒👍
文章
Nicky Zhu · 一月 8, 2021
在本文中,我们将讨论孤立消息。
## 什么是孤立消息
每个消息正文都与一个保存元数据的消息标头相关联。 标头保存源配置名称、目标配置名称、创建时间、处理时间、关联的消息正文引用、会话信息、消息正文类名、消息状态等信息。 当有消息正文记录没有相应的标头记录时,这些消息正文称为孤立消息正文。 我们将讨论可能导致孤立消息正文产生的原因。
### 仅清除标头
在清除任务设置中,**BodiesToo** 设置用于指定是否将消息正文与消息标头一起清除。 如果**关闭**此设置,清除任务将只删除消息标头,而保留消息正文。 这些消息正文将成为孤立记录,因为所引用的标头已被删除。 如果清除消息标头但保留消息正文,则管理门户将无法清除孤立消息正文。 在这种情况下,必须以编程方式清除消息正文。
![](/sites/default/files/inline/images/purgetask_1.jpg)
请参阅有关清除任务的文档
[http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=EGMG\_purge#EGMG\_purge_basic](http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=EGMG_purge#EGMG_purge_basic)
### 复杂的消息正文类(对象值属性)
当 Ensemble 清除某条消息正文时,不一定删除该消息正文的对象值属性。 具体来说,只有当其他对象是序列对象或子对象(由关系定义)时,才会删除这些对象。 对于其他对象,必须通过在消息正文类中定义删除触发器或实现 **%OnDelete()** 方法来适当地处理删除。
OnDelete 实现的示例代码
Class Sample.Address Extends %Persistent{
/// The street address.
Property Street As %String(MAXLEN = 80);
/// The city name.
Property City As %String(MAXLEN = 80);
/// The 2-letter state abbreviation.
Property State As %String(MAXLEN = 2);
/// The 5-digit U.S. Zone Improvement Plan (ZIP) code.
Property Zip As %String(MAXLEN = 5);
}
Class Sample.Person Extends %Persistent{
/// Person's name.
Property Name As %String [ Required ];
/// Person's Social Security number. This is validated using pattern match.
Property SSN As %String(PATTERN = "3N1""-""2N1""-""4N") [ Required ];
/// Person's Date of Birth.
Property DOB As %Date;
/// Person's home address.
Property Home As Address;
/// Person's office address.
Property Office As Address;
///Callback for object deletion
ClassMethod %OnDelete(oid As %ObjectIdentity) As %Status [ Private ]{
// Delete the property object references.
Set tSC = $$$OK, tThis = ##class(Sample.Person).%Open(oid)
If $ISOBJECT(tThis.Home) Set tSC = ##class(Sample.Address).%DeleteId(tThis.Home.%Id())
If $ISOBJECT(tThis.Office) Set tSC = ##class(Sample.Address).%DeleteId(tThis.Office.%Id())
Quit tSC
}
///Callback/Trigger for SQL delete
Trigger OnDelete [ Event = DELETE ]{
// Delete the property object references. {%%ID} holds the id of the record being deleted.
Set tID={%%ID}
Set tThis = ##class(Sample.Person).%OpenId(tID)
If $ISOBJECT(tThis.Home) Do ##class(Sample.Address).%DeleteId(tThis.Home.%Id())
If $ISOBJECT(tThis.Office) Do ##class(Sample.Address).%DeleteId(tThis.Office.%Id())
Quit
}
}
### 已创建但从未发送到其他主机的消息对象
当一条消息被发送/转发到其他主机时,Ensemble 会创建一个新的消息标头,并关联相应的消息正文。 如果在业务服务/流程中创建的消息正文/对象实例已保存到磁盘/数据库,但从未在生产过程中发送到其他主机,它将没有关联的标头,并保留为孤立消息正文。 最佳实践是不创建消息正文,除非它将被转发,或者不对该对象实例调用 %Save()(在将消息放入目标配置队列之前,SendRequestSync/SendRequestAsync API 将保存该对象实例)。 这样,除非将消息正文对象发送到其他主机,否则它将不会持久化。
此问题的最常见原因是开发人员:
克隆了消息正文,且从未转发克隆的消息正文
在上下文变量 (BPL) 中创建了消息正文对象,且从未转发。
## 孤立消息的影响
孤立消息不会被清除任务清除。 这些消息将占用磁盘空间,并且随着它们数量的增长,磁盘使用量也会成比例增加。 不仅消息正文数据使用磁盘空间,每条孤立消息正文记录的任何索引/搜索表条目也都占用磁盘空间。
## 识别孤立消息
可以通过查询消息标头和正文来确定孤立消息是否存在。 每个消息标头都引用相应的消息正文。 消息正文对象 Id 引用存储在标头的 MessageBodyId 属性中,消息正文类名存储在标头的 MessageBodyClassName 属性中。
在 HL7 消息表中查找孤立消息的示例查询:
SELECT HL7.Id FROM EnsLib_HL7.Message HL7
LEFT JOIN Ens.MessageHeader hdr
ON HL7.Id=hdr.MessageBodyId
WHERE hdr.MessageBodyId IS NULL
上面的查询将返回所有没有相应标头的 HL7 消息。 可以将该查询修改为查询任何其他消息类型,只需替换消息正文表名即可。
## 清除孤立消息
管理门户无法提供清除孤立消息正文的方法。 在这种情况下,必须以编程方式清除消息正文。 在 **ENSDEMO** 数据库中,类 **Demo.Util.CleanupSet** 提供了一个如何执行此操作的示例。 该例程也执行深度清除,同时处理对象属性引用。
还可以参考另一个例程来清除孤立消息,但该例程不执行深度清除,只对删除消息正文有帮助。 我在下面附上可下载源码的 github 链接:
最佳做法是始终:
1. 避免编程错误(如前面所讨论)以防止出现孤立消息
2. 只有需要正文并且知道只能以编程方式清除这些消息正文时,才将清除任务设置成关闭 BodiesToo 设置。
3. 实施关系或针对持久对象属性实现 OnDelete。
我希望本文对您构建生产环境有所帮助。 如果您有任何问题或疑虑,请联系我们。 谢谢。
公告
Claire Zheng · 二月 19, 2021
大家好!
以下是 InterSystems编程大奖赛 的技术奖励,这些奖励会让您在投票中获得加分。
Groups
奖励
得分
常规
Docker
2
ZPM
2
Unit Testing
2
API and languages
REST API
2
ODBC/JDBC
2
使用嵌入式Python
4
Native API in Java, Python, .NET, node.js
3
多模型
Globals (key-value)
2
SQL
2
Object
2
New model
3
Analytics
IRIS BI
2
IRIS NLP
2
InterSystems Reports
3
AI/ML
Integrated ML
4
Python or Julia网关
3
互操作性
使用业务流程 BPL 或业务规则
3
使用自定义互操作性适配器
2
使用产品扩展 (PEX)
4
使用工作流程引擎
2
FHIR
使用 FHIR Server REST API
3
使用 FHIR SQL 架构
2
医疗保健标准转换
3
总计
58
以下是有关所有技术奖励的详细信息和有用链接。
常规奖励
ZPM包部署- 2分
如果您为您的全栈应用程序构建并发布 ZPM(ObjectScript 包管理器)包,以便在安装了 ZPM 客户端的 IRIS 上使用命令:
zpm "install your-multi-model-solution"
进行部署,则您可以获得该奖励。
ZPM 客户端.
Documentation.
使用Docker容器- 2分
如果应用程序使用在 docker 容器中运行的 InterSystems IRIS,它将获得“Docker容器”奖励。
Unit Testing - 2分
对 InterSystems IRIS 代码进行单元测试的应用程序将获得该奖励。
请在 Documentation 和 Developer Community. 了解有关 ObjectScript 单元测试的更多信息。
InterSystems IRIS API
使用InterSystems IRIS REST API- 2 分
如果您在您的全栈应用程序中通过 REST API 访问 InterSystems IRIS,您将获得该奖励。 您可以自己构建 REST API,也可以使用任何内置 REST API 或通过 ZPM 安装。 Learn more on InterSystems REST API.
使用嵌入式Python - 4分
嵌入式Python需要一个特定的docker image,例如:
intersystemsdc/iris-ml-community:2020.3.0.302.0-zpm
了解相关 视频.
点此模板 ,了解嵌入式Python如何工作,以及如何制作ZPM包进行部署。
使用InterSystems Native API - 3分
如果您在您的全栈应用程序中使用以下任一 InterSystems Native API 选项访问数据,则可以获得该奖励: .NET, Java, Python, Node.js. 点击 此处 了解更多。
使用InterSystems JDBC- 2分
InterSystems IRIS 提供了用于访问数据的 JDBC 驱动程序。 如果您在您的全栈应用程序中使用 SQL 和 InterSystems JDBC 引用数据,您将获得该奖励。
多模型奖励
InterSystems Global(键-值)- 2 分
InterSystems Global 是 InterSystems IRIS 中用于存储任何数据的多维稀疏数组。 每个 Global 节点都可以被视为一个键,您可以为其设置一个值。InterSystems IRIS 提供一组 API(包括 ObjectScript 命令和Native API)来管理 Global。
工具:
在管理门户中管理globals
文档:
使用多维存储 (Globals)
使用Globals
帖子:
Globals are Magic Swords for managing data
The art of mapping Globals to Classes
视频:
Globals 快速入门
如果您在应用程序中通过 ObjectScript 或Native API使用 Global,则可以获得 2 分奖励。
InterSystems SQL - 2 分
InterSystems IRIS 提供了通过 ObjectScript、REST API、JDBC 对数据进行 SQL 访问的能力。
工具:
VSCode SQL Tools
DBeaver
SQL in Management Portal
Other SQL tools
文档:
SQL Access
InterSystems SQL Reference
帖子:
Class Queries in ObjectScript
视频:
SQL Things you should know
如果您的应用程序使用了 InterSystems SQL,则可以获取 2 分奖励。
InterSystems Objects - 2分
InterSystems IRIS 提供了通过 ObjectScript/REST API、Java/.NET/Node.js/Python 的Native API 和 Java/.NET 的 XEP 在 global 中存储和更改对象实例的方法。
文档:
Object Access
如果您的应用程序中使用了对象访问,则可以获得 2 分奖励。
您的数据模型- 2 分
InterSystems IRIS 可以用作公开您自己的数据模型 API 的数据平台。您可以使用 ObjectScript、REST API 或Native API 来公开您自己的 API,以提供任何特殊数据模型,例如时序、空间、图表、RDF/三元组、列存储、文档存储。
引入任意新数据模型 API,可获得 2 分奖励。
IRIS Analytics奖励
InterSystems IRIS BI - 2分
InterSystems IRIS 业务智能是 IRIS 的一项功能,通过它可以针对 IRIS 中的持久数据创建 BI 多维数据集和数据透视,然后使用交互式仪表板将此信息传递给用户。 Learn more.
基本的 iris-analytics模板 包含 IRIS BI 多维数据集、数据透视和仪表板的示例。
InterSystems IRIS NLP (iKnow) - 2分
InterSystems NLP(又名 iKnow)是一项 InterSystems IRIS 功能,并且是一个自然语言处理库,可以识别英语、德语、荷兰语、法语、西班牙语、葡萄牙语、瑞典语、俄语、乌克兰语、捷克语和日语等自然语言文本中的实体(短语)及其语义上下文。
Learn more about iKnow on Open Exchange.
示例:
Covid iKnow Text Navigator
Samples Aviation
and more
使用 iKnow 管理您的分析解决方案中的非结构化数据,可以获得 1 分奖励。
InterSystems Reports - 3 分
InterSystems Reports 是 InterSystems IRIS 的一项功能,通过它可以设计打印报告,按计划通过电子邮件发送报告,以及为客户提供交互式报告。 InterSystems Reports 是 Logi Analytics® 的产品 Logi Report(以前名为 JReport®)的重新打包。 Learn more in Documentation.
查看InterSystems Reports的 Github示例仓库.
另请观看InterSystems Reports 演示视频 ,并在 Learning Lab 亲自尝试。
您可以在WRC 的下载部分中下载 InterSystems Reports 设计器和服务器。
InterSystems Reports 设计器和服务器的许可证密钥将在Discord中提供。
AI/ML
IntegratedML - 3
IntegratedML 是 InterSystems IRIS 的一项功能,它通过一组 ML 指令扩展了 SQL,可以使解决方案中的 AI 和机器学习计算简化和自动化。了解有关 IntegratedML.
您需要专门的 IRIS 映像才能使用 IntegratedML,请点击查看 here.
示例:
一个基本的integratedML模板
Open Exchange上的几个示例
在您的 IRIS Analytics 解决方案中使用 IntegratedML 可让您获得 1 分奖励。
2. 使用Python网关 - 2 分
Python网关 InterSystems IRIS 的一个加载项,它提供了在 InterSystems IRIS 环境中使用 Python 的方法:
执行任意 Python 代码
将数据从 InterSystems IRIS 无缝传输到 Python 中
使用 Python 互操作性适配器构建智能互操作性业务流程
从 InterSystems IRIS 保存、检查、修改和恢复 Python 上下文。
了解更多 关于Python网关.
您可以使用 Python 网关模板 其中也包括了 IntegratedML。
互操作性奖励
使用业务流程 BPL 或业务规则 - 2 分
IRIS 互操作性产品 的主要功能之一是业务流程,它可以通过 BPL(业务流程语言)进行描述。
在文档中了解有关业务流程的更多信息.
业务规则是一种无代码/低代码方法,用于管理互操作性产品的处理逻辑。 在 InterSystems IRIS 中,可以直接或通过 ObjectScript 表示形式来创建业务规则。
如果您在互操作性产品中创建并使用业务流程或业务规则,则可以获得业务流程/业务规则奖励。
业务规则示例
在文档中了解有关业务规则的更多信息
使用自定义互操作性适配器- 2分
InterSystems 互操作性产品可以包含入站或出站适配器,这些适配器被业务服务和产品操作用来与外部系统进行通信。 您可以使用现有适配器(例如文件或电子邮件),也可以开发您自己的适配器。
如果您开发自己的自定义入站或出站适配器,并在您的产品中使用它,您会获得该奖励。
适配器示例
了解有关适配器的更多信息
使用产品扩展 (PEX) - 4 分
PEX 是互操作性产品的 Java 或 .NET 扩展。
如果您在您的互操作性产品中使用 JAVA 或 .NET 的 PEX,则会获得此奖励。
PEX演示
在文档中了解更多PEX相关信息
使用工作流程引擎 - 2分
工作流程引擎是 IRIS 互操作性的一部分,可用于自动在用户之间分配任务。
如果您在您的互操作性产品中使用工作流程引擎,则会获得此奖励。
在文档中了解有关工作流程的更多信息
社区模块 WorkflowAPI 和 WorkflowUI-ngx 在 Angular 上为工作流程引擎提供了一个漂亮的 UI 层。
FHIR奖
使用 FHIR Server REST API - 3 分
如果您在 InterSystems IRIS for Health 中使用 FHIR Server 的 REST API 端点,则会获得此奖励。 您可以采用IRIS-FHIR-Template,它会在 docker 映像构建期间准备 FHIR Server。 FHIR API 4.0.1 的文档可以在 此处找到.点击InterSystems IRIS医疗版文档了解更多。
使用 FHIR SQL 架构 - 2分
如果您在应用程序的 SQL 查询中使用 FHIR SQL 架构,则可以获得此技术奖励。 例如,您可以使用此架构来构建 FHIR Analytics 解决方案。 使用 HSFHIR\_I0001\_R 表示完整资源的资源架构,使用 HSFHIR\_I0001\_S 架构通过 SQL 搜索资源。 请查看 模板.
医疗保健标准转换- 3 分
InterSystems IRIS for Health 包含医疗保健互操作性模块,这些模块有助于执行从不同的医疗保健标准到 FHIR 的数据转换,反之亦然。 在您的应用程序中执行 CDA 到 FHIR、HL7v2 到 FHIR 或任何其他转换可获得此奖励。 请参见 HL7v2 to FHIR 和 CDA to FHIR 的转换示例. 点击文档了解更多信息。
奖励列表可能会有变化。 敬请关注!
文章
Hao Ma · 三月 26, 2021
Intersystems IRIS 是开发、运行和消耗数据科学服务的绝佳平台。 IRIS 可以使用适配器从任何类型、格式、协议和时间提取数据。 这些数据集可以通过 BPL、DTL 和 Object Script 准备,并存储为 SQL 或 NoSQL 数据。 最后,它可以被 IRIS 内部的开放 ML 算法所消耗,并在 IRIS 仪表板中可视化。 了解详情:[https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=PAGE\_data\_science](https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=PAGE_data_science)。
文章
Claire Zheng · 三月 23, 2021
2021年3月19日,在InterSystems极客俱乐部首次进行的直播课中,InterSystems中国技术支持专家杨乐乐( @Ida.Yang )介绍了“InterSystems全球响应中心服务”,InterSystems全球响应中心(Worldwide Response Center)提供的全面服务以及独特之处,更重要的是,作为InterSystems用户,您将如何获取快速响应、并高效得到您想要的技术支持服务。
公告
Claire Zheng · 三月 25, 2021
亲爱的社区开发者们,大家好!
欢迎了解InterSystems编程大赛的最新投票规则!
详情如下:
您可以根据自己的判断选择三个项目进行投票,选出您心目中的一、二、三名。您对每个项目的提名会为该项目提供相应分数,根据您的级别和资格,分数会有所不同。以下是社区排行榜说明:
社区(Community)提名投票计分方式
如果您满足以下条件
提名
第一名
第二名
第三名
如果您在DC上发布过帖子,且在Open Exchange上传过App
9
6
3
如果您在社区发布过至少一篇帖子,或者在Open Exchange上传过至少一个App
6
4
2
如果您在社区进行过有效贡献(包括发表评论/提问等等)
3
2
1
专家(Experts)提名投票计分会有更复杂的数学计算,不同级别的专家有更多的“点数”权力:
专家(Experts)提名投票计分方式:
级别
提名
第一名
第二名
第三名
Global Maters VIP级 & InterSystems产品经理
15
10
5
Global Master 大使级(Ambassador)
12
8
4
Global Master专家级(Expert)& 社区管理员/版主
9
6
3
Global Master专业级(Specialist)
6
4
2
Global Master初级倡导员(Advocate)& InterSystems员工
3
2
1
系统会根据您的级别,对社区(Community)提名和专家(Experts)提名分别自动计票。
请看投票演示(请注意您提名项目的分数变化):
为了顺利参加投票,您需要:
登录 Open Exchange – 利用开发者社区账号即可
确保您在开发者社区进行过有效贡献——回答问题、提问、发帖、在Open Exchange上传应用程序——然后您就可以进行投票了。 点击了解如何成为社区“活跃”用户 。
我们希望新的投票规则能带来更公平的竞赛环境,您可以为您心仪的项目大胆投票!
欢迎跟帖评论,告诉我们您的建议!
文章
Michael Lei · 六月 1, 2021
什么是 Data Fabric?
“这是一套用于在公司中实施、管控、管理和执行数据操作的硬件基础架构、软件、工具和资源,功能包括跨所有数据存储平台的数据采集、转换、存储、分发、整合、复制、可用性、安全性、保护、灾难恢复、演示、分析、保存、保留、备份、恢复、归档、召回、删除、监视和容量规划,并可使应用程序的使用满足公司的数据需求”。
(Alan McSweeney)
Data Fabric 是一种可利用包括多模型数据库、Analytics、AI、ESB/SOA、微服务和 API 管理在内的所有可用资源和技术创新来获取商业价值的新型数据操作方法。
Data Fabric 原则
Alan McSweeney 列出了以下 Data Fabric 使用原则:
管控、管理和控制 - 无论数据位于何处,均可掌控数据并能够有效管理和管控数据
稳定性、可靠性和一致性 - 使用通用工具和实用工具在所有数据层之间提供稳定可靠的 Data Fabric
安全性 - 符合 Data Fabric、治理自动化、合规性和风险管理方面的各项安全标准
开放、灵活和自由选择 - 能够选择和更改数据存储、访问权限和位置
自动化 - 自动化管理和维护活动、DevOps 和 DevSecOps
性能、恢复、访问和使用 - 应用程序和用户可以在需要时、根据需求以及以适用格式访问数据
一体化 - 所有组件在所有数据层上均可互操作
Data Fabric 架构
McSweeney 设计了一幅在组织内部采用 Data Fabric 的详细概念图,如下所示:
您可以看到,需要采用某些技术才能将数据输入、处理和输出操作融合到一个流程中,进而“编织”数据并为数据使用者提供业务价值。 这些元素可以概括为下图:
数据操作位于数据接收网关 (Data Intake Gateway) 中,使用 ESB 和 API 网关技术捕获、编排、转换、丰富数据,并将数据资产整合到企业数据资产中。
借助 Analytics 和 AI 处理数据操作结果,从而为数据使用者提供数据分析。
由于数据量庞大且种类繁多,以及人们对于“黄金数据”这一“获得真理的唯一渠道”的需求,因此多模型存储库同样是一个重要角色。
InterSystems IRIS 与 Data Fabric
InterSystems IRIS 是一款支持在组织内部采用 Data Fabric 架构的 Data Fabric 平台,如下文所示:
Data Fabric 组件
InterSystems IRIS 组件
多功能存储库
IRIS 数据库
Java、Python、.NET 和对象脚本中受支持的 SQL Relational 对象
NoSQL 到 JSON – DocDB
可以使用 MDX 多维数据集进行分析
分片支持以支持大数据(与 MongoDB 相同)
企业缓存 – ECP
通过集成总线实现的 MDM
RBAC、密码学和标签
Transanalytic 和数据湖
使用 ORM 进行对象脚本的 JDBC、ODBC 或本机 SQL 访问
通过集成总线/服务总线和 API 网关实现数据接收/网关
IRIS 互操作性
REST API 和 API 管理
数据总线 - SOA、EAI、ESB
集成和 EDI 适配器
流程自动化 - BPL 和 DTL、规则
原生集成 Java、.NET 和 C Python 和 JavaScript
MFT - 托管文件传输
消息、事件和 JMS
采用 MQTT/API 的物联网
数据抽取/引入、转换和加载
分析和报告实用工具
IRIS Analytics
BI/分析和 ETL (BPL/DTL)
分级面板、分析和数据透视
SQL、MDX 和 Power BI 连接器访问
报告和嵌入式报告
UIMA - 非结构化内容分析
语义和情感分析
实时或计划分析
AutoML – IntegratedML
采用 R 或 Pyhton 的 AI/机器学习
NLP - 自然语言处理
R 、Python 和对象脚本中的统计信息
数据总线和认知流
文本分析
PMML
自适应运营分析 (AtScale)
用户门户
AI 实用工具
## 结语
InterSystems IRIS 并非简单的数据库或互操作平台,而是帮助您实现 Data Fabric 的核心角色。 如果您使用其他公司的其他解决方案,则需要购买 4 至 7 套解决方案,但使用 InterSystems,您只需要由多模型数据库、ESB/APIM、Analytics 和 AI 组成的一套解决方案即可创建 Data Fabric。 它为您提供了价格低廉、易于使用的优势。
了解详情:
文章
Michael Lei · 五月 8, 2021
大家好!
约翰·霍普金斯大学每天都会发布有关 COVID-19 疫情的新数据。
我在部署于 GCP Kubernetes 上的 docker 中使用 InterSystems IRIS Community Edition 构建了一个[简单的 InterSystems IRIS Analytics 仪表板](http://34.77.54.254:52773/dsw/index.html#/IRISAPP/Covid19),可显示疾病爆发的关键指标。
[![](/sites/default/files/inline/images/images/screenshot_2020-03-28_12_58_33.png)](http://34.77.54.254:52773/dsw/index.html#/IRISAPP/Covid19)
这个仪表板的示例说明了如何使用 IRIS Analytics 分析 CSV 中的信息并以 InterSystems IRIS Community Edition 的形式将其部署到 GCP Kubernetes。
添加了[美国的互动式地图](http://34.77.54.254:52773/dsw/index.html#/IRISAPP/Covid19/USA.dashboard):
[![](https://community.intersystems.com/sites/default/files/inline/images/images/covid_usa.gif)](http://34.77.54.254:52773/dsw/index.html#/IRISAPP/Covid19/USA.dashboard)
[下一个仪表板显示时间线](http://34.77.54.254:52773/dsw/index.html#/IRISAPP/Covid19/Daily.dashboard):
[![](/sites/default/files/inline/images/images/screenshot_2020-03-28_20_48_27.png)](http://34.77.54.254:52773/dsw/index.html#/IRISAPP/Covid19/Daily.dashboard)
并且可以按国家/地区筛选。 例如, 这是[在美国](http://34.77.54.254:52773/dsw/index.html#!/d/Covid19/Daily.dashboard?ns=IRISAPP&FILTERS=TARGET:*;FILTER:%5BDay%5D.%5BH1%5D.%5BMonth%5D.%26%5BNOW%5D~%5BCountryRegion%5D.%5BH1%5D.%5BCountryRegion%5D.%26%5BUS%5D):
[![](/sites/default/files/inline/images/images/screenshot_2020-03-28_21_05_49.png)](http://34.77.54.254:52773/dsw/index.html#!/d/Covid19/Daily.dashboard?ns=IRISAPP&FILTERS=TARGET:*;FILTER:%5BDay%5D.%5BH1%5D.%5BMonth%5D.%26%5BNOW%5D~%5BCountryRegion%5D.%5BH1%5D.%5BCountryRegion%5D.%26%5BUS%5D)
应用程序的源代码在 [Open Exchange](https://openexchange.intersystems.com/package/covid-19-analytics) 上提供。
工作原理
演示使用 InterSystems IRIS Community Edition docker 容器运行,并通过 MDX2JSON REST API 使用 DeepSee Web 表示层公开 InterSystems IRIS BI 仪表板。 它部署在 GCP 上,使用 Google Kubernetes Engine (GKE) 运行。
**开发方式**
数据以 CSV 格式提取自[约翰·霍普金斯仓库](https://github.com/CSSEGISandData/COVID-19)。
类、多维数据集和初始数据透视通过 [Analyzethis](https://openexchange.intersystems.com/package/AnalyzeThis) 模块生成,感谢 @Peter.Steiwer!
随后使用 CSVTOCLASS 方法引入导入方法,感谢 @Eduard.Lebedyuk!
使用 DeepSee Web (DSW) 模块渲染仪表板。
IRIS BI [项目(枢轴、仪表板)](https://github.com/evshvarov/covid-19/tree/master/src/dfi)由 [ISC.DEV](https://openexchange.intersystems.com/package/ISC-DEV) 模块导出:
IRISAPP> d ##class(dev.code).workdir("/irisdev/app/src")
IRISAPP> d ##class(dev.code).export("*.dfi")
代码采用 [VSCode ObjectScript](https://openexchange.intersystems.com/package/VSCode-ObjectScript) 开发,感谢 @Dmitry.Maslennikov。
**为开发和部署构建 docker 镜像**
所有部署均位于 [Dockerfile](https://github.com/evshvarov/covid-19/blob/master/Dockerfile)。 我们通过 Dockerfile 构建了一个包含数据、Web 应用和模块且正确设置的镜像,然后将映像部署到 GCP Kubernetes。
这个 Dockerfile 是 [Dockerfile 模板](https://github.com/intersystems-community/objectscript-docker-template/blob/master/Dockerfile)的修改版,[本文](https://community.intersystems.com/post/dockerfile-and-friends-or-how-run-and-collaborate-objectscript-projects-intersystems-iris)对其进行了很好的描述。
所以,我只会在新的部分停留。
17 COPY data files
在这里,我们将 CSV 文件从数据文件夹复制到容器
set pfile = "/opt/irisapp/files/covid-"_$tr($zd($h-1),"/","-")_".csv", rc=0 \
do ##class(AnalyzeThis.Generated.covid03162020).Import(,pfile,",", ,1,.rc) \
write "imported records: "_rc \
do ##class(%DeepSee.Utils).%BuildCube("covid03162020") \
这段代码会导入最新数据并构建多维数据集。
zpm "install dsw" \
安装 DeepSee Web。
do EnableDeepSee^%SYS.cspServer("/csp/irisapp/") \
这会为 /csp/irisapp web 应用启用 IRIS Analytics (DeepSee)。
zn "%SYS" \
write "Modify MDX2JSON application security...",! \
set webName = "/mdx2json" \
set webProperties("AutheEnabled") = 64 \
set webProperties("MatchRoles")=":%DB_IRISAPP" \
set sc = ##class(Security.Applications).Modify(webName, .webProperties) \
if sc<1 write $SYSTEM.OBJ.DisplayError(sc)
需要这段代码来使分析 Web 应用无需凭据即可使用。
COPY irisapp.json /usr/irissys/csp/dsw/configs/
这条命令可以帮助设置 DSW 配置。
**部署到 Kubernetes**
部署过程由 GitHub Actions 处理 - 此[工作流](https://github.com/evshvarov/covid-19/blob/master/.github/workflows/workflow.yaml)会在每次提交到仓库时处理。
GitHub 工作流使用我们在上一步构建的 Dockerfile 以及 [Terraform](https://github.com/evshvarov/covid-19/tree/master/terraform) 和 [Kubernetes](https://github.com/evshvarov/covid-19/tree/master/k8s) 设置。
该过程与 @Mikhail.Khomenko 在[这篇文章](https://community.intersystems.com/post/deploying-intersystems-iris-solution-gke-using-github-actions)中描述的过程相同。
**如何在本地运行和开发**
欢迎您运行和开发此项目或与此项目展开协作。
要在本地运行,请使用 docker:
将仓库克隆/git pull 到任意本地目录
$ git clone https://github.com/intersystems-community/objectscript-docker-template.git
在此目录中打开终端,然后运行:
$ docker-compose build
运行 IRIS 容器:
$ docker-compose up -d
构建并运行容器后,在以下位置打开应用程序:
localhost:yourport/dsw/index.html#!/d/Covid19/Countries.dashboard?ns=IRISAPP
**如何开发**
此仓库可以通过 ObjectScript 插件在 VSCode 中编码。 安装VSCode、Docker 和 ObjectScript 插件并在 VSCode 中打开文件夹。
**如何贡献**
创建[仓库](https://github.com/evshvarov/covid-19)分支,进行更改并发送拉取请求。 [观看视频了解更多信息](https://www.youtube.com/watch?v=1x0hC_MlRfg&t=4s)。
期待您的贡献!
公告
jieliang liu · 七月 12, 2021
嗨,开发者们,
你准备好迎接新的挑战了吗? 我们很高兴地宣布第一届InterSystems技术文章写作比赛:
🏆 InterSystems技术文章写作大赛 🏆
从2021年7月15日至8月15日,写一篇与InterSystems技术有关的任何主题的文章!
每个人都有奖品: 在此期间,每个在DC上发表文章的人都将获得一个特别的奖品包!
大奖: Apple iPad
参加我们的新比赛,你的内容将被超过55K的月度读者看到! 详情如下。
奖品:
1. 每个人都是InterSystems技术文章竞赛的赢家! 任何在比赛期间写文章的用户都会得到特别的奖励:
🎁 独特的开发者社区连帽衫
🎁 InterSystems 贴纸
2. 专家选择奖 – 文章将由InterSystems的专家进行评判:
🥇 一等奖: Apple iPad 128GB
🥈 二等奖: Amazon Kindle 8G Paperwhite
🥉 三等奖: Nike Utility Speed Backpack
或者另选: Raspberry Pi 4 8GB + InterSystems IRIS社区版安装包镜像
3. 开发社区奖 – 点赞最多的文章。 获胜者将有机会从以下奖品中选择一个。
🎁 Nike Utility Speed Backpack
🎁 Amazon Kindle 8G Paperwhite
谁可以参加?
任何开发者社区成员,除了InterSystems的员工。 创建一个账户!
比赛时间
📝 七月 15日 - 八月 15日: 发表关于社区和投票时间的文章。.
在这段时间内发表一篇文章。 DC成员可以用 "赞 "为发表的文章投票--在社区奖中投票。
注意:你越早发表文章,你就越有时间收集赞。
🎉 八月 16日: 获奖者名单公布。
有什么要求?
❗️ 任何在比赛期间写的文章,只要满足以下要求,就能自动参加比赛:
文章必须与InterSystems技术有关
文章必须是英文的
文章必须是100%的新文章(可以是现有文章的延续)。
文章不应抄袭或翻译。
文章大小。>超过1,000个字符
团队规模:个人(允许同一作者的多个作品)。
要写什么?
❗️ 你可以选择任何与InterSystems技术相关的技术主题。
这里有一些选择文章主题的可能领域。这些只是例子,你可以自由选择任何你想要的东西。
#
主题
细节
1
嵌入式Python简介
嵌入式Python是InterSystems IRIS的一个令人兴奋的新功能,允许开发人员用Python编写方法、SQL存储过程等。
2
来自互操作性的嵌入式Python
探索如何从互操作性中利用嵌入式Python。
3
嵌入式Python。通过语言结构进行翻译
虽然我们的目标是实现嵌入式Python的无缝集成,但还是有一些技巧和窍门可以让事情变得顺利。下划线方法、字典、列表和其他。从ObjectScript中调用Python功能的最佳方式是什么?
4
InterSystems报告设计器介绍
续写 这篇文章. 续篇应该包括:
创建目录
创建基本的报告类型,即
图表(柱状图、饼状图、线状图、仪表图、热图...)。
表(摘要和详细)。
串联表
发布报表到报表服务器
创建一个时间表
教程参考: Getting Started with InterSystems Reports
5
从互操作性/IRIS调用报告
一篇描述如何从IRIS上执行(和获得)InterSystems Reports Report的文章,该报告来自Interoperability Production。
6
使用InterSystems的地图报告
一篇描述如何用地理空间数据建立InterSystems报告的文章。HoleFoods数据集包含了交易的地点,你可以使用。
7
如何用InterSystems IRIS做CI/CD
–
8
使用Kafka连接的变更数据采集
一个例子显示了如何设置Kafka Connect并通过Kafal Connect JDBC连接器导出&导入SQL数据。
9
将分析/ML应用于SQL语句索引
–
10
我最喜欢的维护任务,自动化
–
11
利用审计数据库
–
12
设置GitHub动作的三个步骤,让你的应用程序立于不败之地
–
13
IRIS实例中的OAuth2授权
–
14
在K8s上设置镜像
–
15
在IRIS分析中使用%MDX和%KPI而不是主题区域
–
16
尝试外部语言网关/与以前的编程语言网关相比
Example
17
从IAM向Kafka流式传输事件
–
18
IntegratedML演练
–
19
使用Python将请求导出到Excel
–
20
将云服务与production结合起来
例如,MS Azure Cognitive Services或Amazon Rekognition。
21
Working with IKO
–
22
IKO IRIS on AWS Kubernetes with Hugepages
–
23
纳入IKO的备份
–
24
IKO - 创建一个有计算节点、SAM、无分片的集群
包括CPF文件来设置我们的最佳实践。
25
与ECP建立的数据科学共享工作组
有一个数据服务器,每个数据科学家的桌面上都有一个计算节点。显示数据在断开连接时可以使用,重新连接时可以同步。
26
讨论云部署的存储选项的文章(本地存储、块存储等的性能差异)和权衡(如果使用块存储,你可能不需要镜像,等等)。
–
注意:允许不同作者的同一主题的文章。
欢迎在本帖的评论中提交你的主题想法。
所以。
我们等待着你的精彩文章!
祝你们好运,让普利策的力量与你们同在! ✨
公告
Michael Lei · 一月 27, 2023
大家好,
我在 OEX 上加载了一个新软件包,我也计划在本月参加比赛。
简而言之,它为您提供以下内容。
用于 InterSystems IRIS 的持久(表)类以保存记录历史的基类
这些类允许在touch时将持久类记录历史化到另一个持久类中。
这提供了任何记录的完整历史记录。
它允许记录回滚到特定版本。
它可以自动清除旧的历史记录。
请检查一下。
谢谢你们。
公告
Claire Zheng · 一月 30, 2023
亲爱的开发者们,
非常感谢您又在 InterSystems 开发者社区度过了一年!
我们的团队日复一日地努力让它变得更好,这对我们12000+ 每一位成员都很重要!
我们想知道目前开发者社区对您有多大用处。请花点时间让我们了解您的想法,以及可以改进的地方:
👉🏼 InterSystems 开发者社区2022年度调查 👈🏼
请知悉:调查可在 5 分钟内完成。
也欢迎您在本文的评论部分提供反馈。
我们期待了解您的意见! 😉
公告
Claire Zheng · 四月 6, 2022
Hey 开发者们,
投票周开始了!
来为你最欣赏的应用投上一票吧!InterSystems开发者竞赛:Globals!
🔥 为你最欣赏的应用投票: 点此投票 🔥
如何投票?请看以下细节。
Experts nomination(专家提名)
InterSystems experts:InterSystems经验丰富的专家评审团将选出最好的应用程序,在Experts nomination(专家提名)中提名奖项。 有请InterSystems专家:
⭐️ @Benjamin.DeBoe, Product Manager⭐️ @Alexander.Koblov, Support Specialist⭐️ @Robert.Kuszewski, Product Manager⭐️ @Daniel.Kutac, Senior Sales Engineer⭐️ @Stefan.Wittmann, Product Manager⭐️ @Joel.Solon, Senior Technical Trainer⭐️ @Eduard.Lebedyuk, Sales Engineer⭐️ @Timothy.Leavitt, Development Manager ⭐️ @Steve.Pisani, Senior Solution Architect⭐️ @Evgeny.Shvarov, Developer Ecosystem Manager
Community nomination(社区提名)
每一个用户来说,你投出的每一票的分数,是根据下面两类中最高的分数来计:
条件
奖项排名
第一名
第二名
第三名
在社区发布一篇帖子,并在Open Exchange中上传一个App
9
6
3
在社区发布了至少一篇帖子 或 在Open Exchange上传了一个App
6
4
2
在社区进行了任何有效贡献,如回帖、提问、发帖等
3
2
1
等级
奖项排名
第一名
第二名
第三名
Global Masters 的 VIP 级别 或 InterSystems 产品经理
15
10
5
Global Masters 的 Ambassador级别
12
8
4
Global Masters的Expert 级别或开发者社区版主
9
6
3
Global Masters的Specialist级别
6
4
2
Global Masters的Advocate级别,或 InterSystems员工
3
2
1
Blind vote!
每个应用获得的投票数将对所有人不可见。我们会每天在这个帖子(英文原帖)的评论区发布一次排行榜。
在 竞赛页面 ,各项目将按以下进行排名:发布得越早,排名越靠前。
P.S. 不要忘记订阅本文(请订阅英文原帖),点击铃铛图标,即可收到最新评论。
在参与投票前,您需要:
登录 Open Exchange – 使用开发者社区账号即可。
在社区内进行有效贡献 ——回答问题、发帖、在Open Exchange发布新应用等等都可以,然后你的账号才可以参与投票。点击查看本帖 ,了解如何更好地成为有效的社区贡献者!
投票期间,如果你改了主意,可以随时将票改投给其他项目。
来支持你喜欢的项目吧!
注意:在投票期间,参赛者可以继续修复bug,提升应用,所以投票者不要错过最新发布的版本哦~