清除过滤器
文章
姚 鑫 · 九月 1, 2022
# 第十九章 维护本地数据库(四)
# 压缩数据库中的全局变量
管理数据库空间的另一种方法是使用 `^DATABASE` 例程压缩数据库中的全局变量。压缩全局变量将全局数据合并到更少的块中,从而增加数据库中的可用空间量。
在创建和更新全局变量时 `IRIS` 通常以将全局块填充到大约 `70%` 容量的方式分配数据。 (完全按整理顺序增长的全局可能会分配到接近 `90%`。)通常,允许 `IRIS` 自动管理全局块密度就足够了。然而,一些不连续的数据删除模式可能会显着降低平均全局块密度。
**注意:要逐个全局地查看数据库中全局块的当前密度,可以运行完整性检查、并检查每个全局的数据级别输出。**
压缩全局变量时,指定所需的全局块密度(默认为 `90%`),操作会尝试通过合并数据来尽可能接近此值——例如,将分布在三个块中的全局数据重新排列为两个。通常(但并非总是),压缩全局变量会显着增加数据库中可用的可用空间。 (如果指定的目标密度低于数据库当前的全局块密度,则数据库的大小不会增加。)
要压缩数据库中的全局变量,请使用以下过程:
1. 打开终端并更改为 `%SYS` 命名空间。
2. 输入 `do ^DATABASE`,然后从菜单中选择 7) `Compact globals in a database`。
```java
%SYS>do ^DATABASE
1) Create a database
2) Edit a database
3) List databases
4) Delete a database
5) Mount a database
6) Dismount a database
7) Compact globals in a database
8) Show free space for a database
9) Show details for a database
10) Recreate a database
11) Manage database encryption
12) Return unused space for a database
13) Compact free space in a database
14) Defragment a database
15) Show background database tasks
```
3. 指定要在其上运行操作的数据库的目录。可以通过输入来指定多个数据库?在数据库目录压缩`?`提示,然后输入数字列表。
```java
Database directories to compact? ?
1) c:\intersystems\irishealth\mgr\
2) c:\intersystems\irishealth\mgr\hscustom\
3) c:\intersystems\irishealth\mgr\hslib\
4) c:\intersystems\irishealth\mgr\hssys\
5) c:\intersystems\irishealth\mgr\irisaudit\
6) c:\intersystems\irishealth\mgr\irislocaldata\
7) c:\intersystems\irishealth\mgr\iristemp\
8) c:\intersystems\irishealth\mgr\user\
(Multiple selections allowed: * for all, or list such as 1,4,7-10)
```
4. 指示您要压缩所有全局变量,或者输入要压缩的单个全局变量列表。
```java
Database directories to compact? 8 c:\intersystems\irishealth\mgr\user\
Databases Selected
------------------
c:\intersystems\irishealth\mgr\user\
```
5. 指定目标平均全局块密度,响应其余提示,并确认。
```java
All Globals? Yes => yes
34 items selected from
34 available globals
How full do you want the database blocks? 90 => 50
Display compacted globals? No => n
Device: ""
Right margin: 80 => 50
Confirm compaction of databases? Yes => yes
Database Compaction
Aug 20 2022 5:49 PM
Database c:\intersystems\irishealth\mgr\user\
Global MB Processed MB Compres
sed To
Completed
------ ------------ ----------
------
---------
^IRIS.Msg 0
0
5:49 PM
^IRIS.MsgNames 0
0
5:49 PM
^IRIS.SASchema 0.008
0.008
5:49 PM
^ISC.Src.Jrn 0.008
0.008
5:49 PM
^ISCMethodWhitelist 0.008
0.008
5:49 PM
^ROUTINE 0.008
0.008
5:49 PM
^oddBIND 0
0
5:49 PM
^oddCOM 0.016
0.016
5:49 PM
^oddDEF 0.016
0.016
5:49 PM
^oddDEP 0.008
0.008
5:49 PM
^oddEXT 0.008
0.008
5:49 PM
^oddEXTR 0
0
5:49 PM
^oddMAP 0
0
5:49 PM
^oddMETA 0
0
5:49 PM
^oddPKG 0
0
5:49 PM
^oddPROC 0
0
5:49 PM
^oddPROJECT 0.008
0.008
5:49 PM
^oddSQL 0
0
5:49 PM
^oddStudioDocument 0
0
5:49 PM
^oddStudioMenu 0
0
5:49 PM
^oddTSQL 0
0
5:49 PM
^oddXML 0
0
5:49 PM
^rBACKUP 0
0
5:49 PM
^rINC 0
0
5:49 PM
^rINCSAVE 0
0
5:49 PM
^rINDEX 0.008
0.008
5:49 PM
^rINDEXCLASS 0.008
0.008
5:49 PM
^rINDEXEXT 0.10
0.10
5:49 PM
^rINDEXSQL 0.008
0.008
5:49 PM
^rMAC 0
0
5:49 PM
^rMACSAVE 0
0
5:49 PM
^rMAP 0.008
0.008
5:49 PM
^rOBJ 0.008
0.008
5:49 PM
^rPYC 0.008
0.008
5:49 PM
```
**注意:紧凑的全局操作旨在与正常的数据库活动同时运行。但是,该操作确实会消耗一些系统资源,并且如果系统处于极高负载下,则可能无法完成。出于这些原因, 建议在非高峰时间运行此和其他数据库重组操作(包括压缩数据库和对全局进行碎片整理),并且一次只在系统上运行一个此类操作**。
**全局压缩可能涉及临时增加正在压缩的数据库大小。如果这导致数据库达到其配置的最大大小,或者由于存储卷上的可用空间不足而无法进行扩展,则取消操作。**
文章
Michael Lei · 十月 27, 2022
WinterCorp 性能测试报告摘要
InterSystems的性能测试方法用来衡量 "许多运行状态下数据库应用的关键构件 "是有效的。
与AWS Aurora MySQL、MariaDB、Microsoft SQL Server、Oracle和PostgreSQL相比,InterSystems IRIS显示出 "巨大的性能优势"。
InterSystems IRIS的插入速度是其他系统的1.7到9倍。InterSystems IRIS的数据速率是1.1到600倍。在插入率和查询率的组合上,没有其他系统在性能上能接近于InterSystems IRIS。
InterSystems IRIS的效率是AWS Aurora MySQL的2.7到3.1倍,而且随着集群中节点数量的增加,效率优势也越来越大。
在整个三到五分钟的集群测试中,InterSystems IRIS插入的记录在插入后很快出现在查询中。
图1. 每vCPU每秒查询对比(InterSystems IRIS vs AWS Aurora MySQL,1-4 查询节点)
图2. 单节点插入/查询速度对比(InterSystems IRIS vs AWS Aurora MySQL vs MS SQL Server)
图3. 单节点插入/查询测试(Maria DB vs Oracle vs PostgreSQL vs InterSystems IRIS)
图4. 1-4节点集群测试(AWS Aurora vs InterSystems IRIS)
欢迎点击获取报告全文。
关于WinterCorp
WinterCorp 成立于1992年,是专业从事数据库性能/可扩展性评测的第三方专业机构。更多信息欢迎访问https://wintercorp.com。
公告
Claire Zheng · 四月 6, 2023
InterSystems 已修复一个导致SQL查询返回不正确结果的缺陷。
该缺陷存在于以下产品和基于这些产品的任何InterSystems产品中。
受影响的版本是 2021.2、2022.1.x、2022.2 和 2022.3:
InterSystems IRIS®
InterSystems IRIS for Health™(医疗版)
HealthShare®Health Connect
受影响的版本是 2022.2:
InterSystems HealthShare®
当启用 SQL 运行时计划选择 (RTPC) 被启用(默认),并且查询包含一个“truth value”“WHERE ?=? 时,该缺陷会被触发,当被触发时,一些判断可能不会被正确评估;这导致了不正确的查询结果。
注意:通过查看SQL语句,无法完全评估一个查询的脆弱性。这是因为InterSystems SQL查询优化可以在查询的内部表示中增加“truth value”。
如果你的环境使用 InterSystems SQL,那么你可以通过禁用RTPC 功能来补救这个问题。
注意:关于 InterSystems HealthShare® 缓解措施的其他信息将很快发布。
此缺陷的修复被标识为 YCL227,将包含在InterSystems IRIS®、InterSystems IRIS for Health™ 和 HealthShare® Health Connect 以及基于它们的任何 InterSystems 产品的所有未来版本中。
这个修复也可以通过补丁 Ad hoc 获得。
如果你对这个警报有任何疑问,或需要一个支持修复的补丁Ad hoc,请联系全球响应中心。
文章
Frank Ma · 三月 2, 2022
如果你的嵌入式Python代码调用了 tkinter library库(它被很多图形制作库使用,包括matplotlib),你可能会得到这个错误:
<THROW> *%Exception.PythonException <CLASS DOES NOT EXIST> 230 ^^0^DO ##CLASS(User.Test).Test()
<class '_tkinter.TclError'>: Can't find a usable init.tcl in the following directories:
c:/intersystems/irispy/lib/python/lib/tcl8.6
c:/intersystems/irispy/lib/tcl8.6
c:/intersystems/lib/tcl8.6
c:/intersystems/irispy/library
c:/intersystems/library
c:/intersystems/tcl8.6.9/library
c:/tcl8.6.9/library
This probably means that Tcl wasn't installed properly.
下面是一个触发这个错误的代码样本:
Class User.Test
{
/// do ##class(User.Test).Test()
ClassMethod Test() [ Language = python ]
{
import matplotlib.pyplot as plt
import numpy as np
# Data for plotting
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)
fig, ax = plt.subplots()
ax.plot(t, s)
ax.set(xlabel='time (s)', ylabel='voltage (mV)')
ax.grid()
fig.savefig("test.png")
}
}
在这种情况下,你不需要安装tcl和tk库。其中一个方法是从源代码开始构建。In that case you need no install tcl and tk libraries. One of the approaches is 从源代码来构建。
对于windows系统,你可以在这里获得预构建的二进制文件。例如,根据我的错误,我需要8.6.12.5版本。下载它并从lib文件夹中复制tcl8.6和tk8.6到 c:/intersystems/irispy/lib/python/lib/ 或你的错误信息中的任何其他路径。
之后,你可能会得到另一个错误:
Can't find a usable init.tcl in the following directories:
c:/intersystems/irispy/lib/python/lib/tcl8.6
c:/intersystems/irispy/lib/tcl8.6
c:/intersystems/lib/tcl8.6
c:/intersystems/irispy/library
c:/intersystems/library
c:/intersystems/tcl8.6.9/library
c:/tcl8.6.9/library
c:/intersystems/irispy/lib/python/lib/tcl8.6/init.tcl: version conflict for package "Tcl": have 8.6.9, need exactly 8.6.12
version conflict for package "Tcl": have 8.6.9, need exactly 8.6.12
while executing "package require -exact Tcl 8.6.12"
(file "c:/intersystems/irispy/lib/python/lib/tcl8.6/init.tcl" line 19)
invoked from within "source c:/intersystems/irispy/lib/python/lib/tcl8.6/init.tcl" ("uplevel" body line 1)
invoked from within "uplevel #0 [list source $tclfile]"
This probably means that Tcl wasn't installed properly.
这意味着二进制文件与预期的版本不同,但这是一个微小的差异,可以通过打开 init.tcl 并把
package require -exact Tcl 8.6.12
替换成
package require -exact Tcl 8.6.9
同样的,在 tk.tcl把
package require -exact Tk 8.6.12
替换成
package require -exact Tk 8.6.9
之后,tkinter 就应该正常工作了。
问题
liu yangyang · 三月 29, 2022
主要问题:
默认安装后,有没有默认用户名,密码?远程jdbc连接报错,麻烦解答一下,谢谢
[InterSystems IRIS JDBC] Communication link failure: Access Denied [08S01][461] Access Denied
创建用户:
addgroup iris
useradd -g iris -d "/home/iris" -m -s "/bin/bash" iris
passwd iris
安装过程:
root@baec-ThinkPad-E480:/data/IRIS_Community-2021.2.0.651.0-lnxubuntu1804x64# ./irisinstall
Your system type is 'Ubuntu LTS (x64)'.
Enter instance name : IRIS
Enter a destination directory for the new instance.
Directory: /data
Select installation type.
1) Development - Install InterSystems IRIS server and all language bindings
2) Server only - Install InterSystems IRIS server
3) Custom
Setup type ?
How restrictive do you want the initial Security settings to be?
"Minimal" is the least restrictive, "Locked Down" is the most secure.
1) Minimal
2) Normal
3) Locked Down
Initial Security settings ?
What group should be allowed to start and stop
this instance? iris
Do you want to install IRIS Unicode support ?
InterSystems IRIS did not detect a license key file
Do you want to enter a license key ? no
Please review the installation options:
------------------------------------------------------------------
Instance name: IRIS
Destination directory: /data
InterSystems IRIS version to install: 2021.2.0.651.0com
Installation type: Development
Unicode support: Y
Initial Security settings: Minimal
User who owns instance: root
Group allowed to start and stop instance: iris
Effective group for InterSystems IRIS processes: irisusr
Effective user for InterSystems IRIS SuperServer: irisusr
SuperServer port: 1972
WebServer port: 52773
JDBC Gateway port: 53773
Web Gateway: using built-in web server
Not installing IntegratedML
------------------------------------------------------------------
Confirm InterSystems IRIS installation ?
Starting installation
Starting up InterSystems IRIS for loading...
../bin/irisinstall -s . -B -c c -C /data/iris.cpf*IRIS -W 1 -g2
Starting Control Process
Allocated 254MB shared memory: 32MB global buffers, 80MB routine buffers
Creating a WIJ file to hold 32 megabytes of data
IRIS startup successful.
System locale setting is 'zh_CN.UTF-8'
This copy of InterSystems IRIS has been licensed for use exclusively by:
InterSystems IRIS Community
Copyright (c) 1986-2022 by InterSystems Corporation
Any other use is a violation of your license agreement
^^/data/mgr/>
^^/data/mgr/>
Start of IRIS initialization
Loading system routines
Updating system TEMP and LOCALDATA databases
Installing National Language support
Setting IRISTEMP default collation to IRIS standard (5)
Loading system classes
Updating Security database
Loading system source code
Building system indices
Updating Audit database
Updating Journal directory
Updating User database
Updating Interoperability databases
Scheduling inventory scan
IRIS initialization complete
See the iboot.log file for a record of the installation.
Starting up InterSystems IRIS...
Once this completes, users may access InterSystems IRIS
Starting IRIS
Using 'iris.cpf' configuration file
Starting Control Process
Global buffer setting requires attention. Auto-selected 25% of total memory.
Allocated 2420MB shared memory: 1965MB global buffers, 196MB routine buffers
Creating a WIJ file to hold 99 megabytes of data
This copy of InterSystems IRIS has been licensed for use exclusively by:
InterSystems IRIS Community
Copyright (c) 1986-2022 by InterSystems Corporation
Any other use is a violation of your license agreement
You can point your browser to http://baec-ThinkPad-E480:52773/csp/sys/UtilHome.csp
to access the management portal.
Installation completed successfully
启动实例:
root@baec-ThinkPad-E480:/data# iris start iris
IRIS is already up!
查看信息:
root@baec-ThinkPad-E480:/data# iris list
Configuration 'IRIS' (default)
directory: /data
versionid: 2021.2.0.651.0com
datadir: /data
conf file: iris.cpf (SuperServer port = 1972, WebServer = 52773)
status: running, since Tue Mar 29 17:00:13 2022
state: ok
product: InterSystems IRIS
连接信息:
ip:x.x.x.x
端口:1972
指定数据库:user
用户:_SYSTEM
密码:system
连接报错信息:
指定的数据库用户/密码组合被拒: [08S01][461] [InterSystems IRIS JDBC] Communication link failure: Access Denied [08S01][461] Access Denied 请参考文档:Emergency Access
使用此方法重置密码。
文章
jieliang liu · 三月 15, 2021
JDBC 兼容性状态 **这是一篇 [InterSystems 常见问题解答网站](https://faq.intersystems.co.jp/)文章。
版本 2009.1 及更高版本与 JDBC 4.0 API 兼容。 有关详细信息,请查阅以下文档。 [关于 JDBC 支持](First Look: JDBC and InterSystems Databases - InterSystems IRIS Data Platform 2020.3)
问题
li wang · 七月 13, 2021
大家好,我想请教一个问题,如何在Health Connect实现访问共享文件夹的文件 (对文件进行读取或者写入操作,非本地文件) Hello Li,
Your post was cross-posted to the US developer community. Here's my first impression (copied from the other forum):
If this is on Windows I suspect this is an issue with using the default SYSTEM account. See the following doc:
Installing InterSystems IRIS on Microsoft Windows > Windows User Accounts
"When installing InterSystems IRIS, you must choose the Windows user account to run the InterSystems service. There are two options:
The default SYSTEM account (Windows Local System account). This is used in Minimal security installations.
A defined Windows user account.
Running the Windows InterSystems service under the default SYSTEM account is appropriate for many installations, but in some cases can cause issues relating to file permissions and network security access. If you anticipate potential problems in these areas for an InterSystems IRIS instance, for example due to your network configuration or security arrangements, specify an account for the Windows InterSystems service that has the needed privileges and/or access, such as a domain administrator account.
For instructions on how to change the service account after installation, see the Managing Windows User Access to the InterSystems IRIS Instance section."
Changing the InterSystems Service Account
<install-dir>\bin\IRISinstall.exe setserviceusername <instance-name> <username> <password> 请参考以下文档:Installing InterSystems IRIS on Microsoft Windows > Windows User Accounts
"在安装InterSystems IRIS时,你必须选择Windows用户帐户来运行InterSystems服务。有两个选择。默认的SYSTEM帐户(Windows本地系统帐户)。这是在最小的安全安装中使用的。一个已定义的Windows用户帐户。在默认的SYSTEM帐户下运行Windows InterSystems服务对许多安装来说是合适的,但在某些情况下会导致与文件权限和网络安全访问有关的问题。如果你预计InterSystems IRIS实例在这些方面有潜在的问题,例如由于你的网络配置或安全安排,为Windows InterSystems服务指定一个具有所需权限和/或访问权的帐户,如一个域管理员帐户。关于如何在安装后改变服务帐户的说明,请参见 "管理Windows用户对InterSystems IRIS实例的访问 "部分。
Changing the InterSystems Service Account
<install-dir>\bin\IRISinstall.exe setserviceusername <instance-name> <username> <password> 感谢您的答复,不过我想实现的是在HealthConnect的代码中访问共享文件夹里的文件,这块您这边有相关的实例吗 @Vic Sun do you hv any sample codes with HC? Thx! Li, I'm not sure exactly what you want to do, but I'd start by reviewing the %Library.File class reference, and this %Library.File documentation "Using %Library.File".
You may find the stream documentation useful as well. 您的答复非常有用,我这边已经处理好该问题了,非常感谢
文章
jieliang liu · 十月 26, 2021
本技术概要(First Look)通过重点概述和基本的实践示例,向您介绍在 InterSystems IRIS®数据平台上使用容器(Container)的基本原理。您将了解容器的目的、重要性和好处,以及 InterSystems 如何实现它们的具体细节。
有关 Docker 容器和 InterSystems IRIS 的完整文档,请参见 Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品》),以及 InterSystems Cloud Manager Guide(《InterSystems 云管理器指南》)的 ICM Overview(ICM 概述)章节。Learn More About InterSystems IRIS in Containers(了解容器中的 InterSystems IRIS 的更多信息)部分提供了到其他参考资料的链接。
要浏览所有的技术概要(First Look),包括可以在 InterSystems IRIS 免费的评估实例上执行的那些,请参见 InterSystems First Looks(《InterSystems 技术概要》)。
为什么是容器(Container)?
容器(Container)将应用程序打包成独立于平台、完全可移植的运行时解决方案(runtime solution),满足所有需求,但却隔离于任何依赖项(dependency)。具体来说,Docker 容器无处不在。因为所有主要的公共云基础设施即服务(Infrastructure as a Service,IaaS)供应商都支持 Docker,企业可以通过使用容器并让云供应商处理基础设施来降低成本和复杂性。
容器带来了以下所有的好处:
容器干净地划分代码和数据,提供完全分离的关注点,应用程序可轻松部署和升级。
容器是非常高效的;容器中的应用程序只包含运行它所需的元素(element),并使其能够访问所需的连接、服务和接口,而且容器作为单个进程运行,所占用的内存并不比任何其他可执行文件多。
容器支持应用程序在不同环境之间的清洁移动(clean movement)——例如,从开发到测试,再到生产——从而减少具有不同目标的部门之间的典型过程和管理冲突。开发人员可以专注于最新的代码和库(library),质量开发人员(quality developers)专注于测试和缺陷描述,运营工程师专注于整体解决方案的基础设施,包括网络、高可用性、数据持久性(data durability)等等。
容器提供了企业对业务和技术进行变革所需的敏捷性、灵活性和可重复性。容器将应用供应过程(包括构建阶段)与运行过程明确分开,企业可以采用统一的应用程序交付方法,包括更敏捷的交付方法(DevOps)和架构(微服务)。
这些优势使容器成为应用程序的天然构件块,推动应用程序交付和部署方法变得更简单、更快速、更可重复、更强大。
容器中的 InterSystems IRIS
因为容器只打包运行容器化应用程序所需的元素,并在本地执行应用程序,所以它提供标准的、易于理解的应用程序配置、行为和访问。如果您对在 Linux 上运行的 InterSystems IRIS 有经验,那么基于 Linux 的 InterSystems IRIS 容器在什么物理、虚拟或云系统和操作系统平台上运行并不重要;您以相同的方式与它们进行交互,就像在 Linux 系统上运行传统的 InterSystems IRIS 实例一样。
下面介绍 InterSystems IRIS 在如何使用容器方面的不同。
InterSystems 提供的映像(InterSystems-provided images)——容器映像(container image)是可执行包,而容器是映像(image)的运行时实例 (runtime instance)——即映像(image)在执行时在内存中变成的实例。InterSystems 提供包含完整安装的 InterSystems IRIS 实例的映像(image),以及其他相关映像(image)。有关 InterSystems 映像(image)的更多信息,请参见 Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品》)中的 Using InterSystems IRIS Images(使用 InterSystems IRIS 映像)。
在本文档的实践体验中,您将从 InterSystems 提供的 InterSystems IRIS 映像(image)中创建并启动一个容器。
Iris-main 程序(iris-main program)——iris-main 程序使 InterSystems IRIS 和其他产品能够满足在 Docker 容器中运行的应用程序的要求。入口点应用程序(entrypoint application),即容器启动时启动的主进程,需要阻塞(block)——即等待(wait),直到其工作完成,但启动 InterSystems IRIS 的命令并不作为一个阻塞进程(blocking process)运行。iris-main 程序通过启动 InterSystems IRIS 来解决这个问题,然后继续作为阻塞入口点应用程序(blocking entrypoint application)运行。有关 iris-main 的更多信息,请参见在 Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品》)中的 The iris-main Program(iris-main 程序)。
该程序还提供了许多选项,以帮助调整 InterSystems IRIS 在容器中的行为;您将在本文档的实践体验中使用一些 iris-main 选项。
持久化 %SYS 功能(durable %SYS feature)——因为容器化的应用程序与主机环境隔离,所以它不会写入持久化数据(persist data);当容器被移除并被新的容器取代时,它在容器内写入的任何内容都会丢失。因此,容器化应用部署的一个重要方面是安排数据存储在容器之外,并提供给其他和未来的容器使用。
当 InterSystems IRIS 在容器中运行时,持久化 %SYS 功能(The durable %SYS feature)能够持久地存储特定于实例的数据——如用户定义、审计记录以及日志、日记和 WIJ 文件——允许一个实例跨越多个容器。例如,如果您使用持久化 %SYS 运行 InterSystems IRIS 容器,您可以通过停止原始容器(the original container)并运行使用旧容器创建的特定于实例的数据(instance-specific data)的新容器来升级实例。
您将在本文档的实践体验中探索持久化 %SYS (durable %SYS)功能。有关持久化 %SYS(durable %SYS) 的详细信息,请参见 Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品》)中的 Durable %SYS for Persistent Instance Data(持久化 %SYS 的持久化实例数据)。
重要提示: InterSystems 的容器映像符合开放容器标准(Open Container Initiative,OCI)规范,并在 Docker 企业版(Enterprise Edition)引擎上使用广泛流行的容器 Ubuntu 操作系统构建,该引擎完全支持 OCI 标准,并允许映像在 Docker Hub 注册表中认证和展示。因此,InterSystems 映像在任何基于 Linux 操作系统的符合 OCI 标准的运行时引擎上都得到支持,无论是在自有云还是在公共云中。
InterSystems 云管理器(InterSystems Cloud Manager,ICM)在其提供的云基础设施以及现有的虚拟和物理基础设施上提供 InterSystems IRIS 容器和其他容器的自动部署。有关使用 ICM 部署容器化的 InterSystems IRIS 实例的更多信息,请参见 First Look:InterSystems Cloud Manager(《技术概要:InterSystems 云管理器》) 和 InterSystems Cloud Manager Guide(《InterSystems 云管理器指南》)。
3. 下载 InterSystems IRIS 映像(Image)
要使来自 InterSystems 的 InterSystems IRIS 映像(image)可用于本实践,您必须将映像(image)下载到您正在使用的系统中。以下替代方案描述了您可以或可能可以使用的 InterSystems IRIS 映像(image)。
您可以使用来自 InterSystems 容器注册表(InterSystems Container Registry,ICR)的 InterSystems IRIS 社区版(Community Edition)映像(image),该映像(image)包含可从 InterSystems 获得的所有映像(image)的存储库,如 Using the InterSystems Container Registry(《使用 InterSystems 容器注册表》)中所述。您也可以从 Docker Store 的 InterSystems IRIS 数据平台页面下载社区版(Community Edition)映像(image)。
InterSystems IRIS 社区版(Community Edition)有一个免费的内置 13个月的许可证(和一些功能限制);如果您在这次实践中使用社区版(Community Edition),您就不需要提供下一步(Add the License Key to the External Storage Location(添加许可证密钥到外部存储位置))中所述的许可证密钥。更多信息,请参见 Deploy and Explore InterSystems IRIS(《部署和探索 InterSystems IRIS》)中的 Deploy InterSystems IRIS Community Edition on Your Own System(在您自己的系统上部署 InterSystems IRIS 社区版)。
注意: 另一个选择是在 GCP、AWS 或 Azure 上提供一个承载运行中的 InterSystems IRIS 社区版(Community Edition)容器的云节点;更多信息,请参见 Deploy and Explore InterSystems IRIS(《部署和探索 InterSystems IRIS》)中的 Deploy InterSystems IRIS Community Edition on a Cloud Node(在云节点上部署 InterSystems IRIS 社区版)。如果您在这个练习中使用社区版(Community Edition)的云节点,您可以跳过接下来的两个步骤,并跳转到 Change the Instance and Commit the Container as a New Image(更改实例并将容器作为新映像提交)。
如果您是 InterSystems 客户,您可以使用 InterSystems 容器注册表(InterSystems Container Registry,ICR)发布的 InterSystems IRIS 映像(image)。Using the InterSystems Container Registry(使用 InterSystems 容器注册表)列出了 IRC 提供的 InterSystems IRIS 映像(image),并解释了如何使用您的 WRC 凭证对注册表进行身份验证,以便您下载。
您的企业可能有一个私有映像(image)注册表,其中包括一个或多个 InterSystems IRIS 映像(image)。如果是这样,请获取您需要的映像(image)的注册表、存储库和标签的位置,以及访问所需的凭证。
当您确定了要下载的注册表和需要的凭证(如果有)后,请参见 Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品 》)中的 Downloadingthe InterSystems IRIS Image(下载 InterSystems IRIS 映像),了解下载 InterSystems IRIS 映像(image)的说明。
为了简单起见,这些说明假定您正在使用的映像(image)是 intersystems/iris:2021.1.0.205.0。
4. 添加许可证密钥到外部存储位置
与任何 InterSystems IRIS 实例一样,在容器中运行的实例需要一个许可证密钥(通常称为 iris.key)。
从 Docker Store 获得的 InterSystems IRIS 社区版(Community Edition)映像(在上一节中进行了描述)带有一个免费的内置临时许可证。然而,一般来说,许可证密钥没有也不能包含在 InterSystems IRIS 容器映像(container image)中,而是必须在容器启动后复制到容器中,以便激活运行在其中的 InterSystems IRIS 实例。iris-main 程序为此提供了一个选项,但它要求您把许可证密钥放在一个作为外部 volume 挂载的存储位置;下一节提供了使用说明。要了解有关 InterSystems IRIS 容器的许可证密钥的更多信息,请参见 Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品》)中的 License Keys for InterSystems IRIS Containers(InterSystems IRIS 容器的许可证密钥)。
将您的 InterSystems IRIS 许可证密钥文件 iris.key 复制到外部存储位置。
5. 从 InterSystems IRIS 映像(Image)运行容器
一旦您在本地机器上使 InterSystems IRIS 映像(image)可用,确定了外部存储位置并在其上放置了许可证密钥,您就可以使用 docker run 命令来创建和启动容器了。Docker run 命令实际上结合了三个独立的命令,如下所示:
docker pull — 如果本地不存在映像(image),则下载一个。
docker create — 从映像(image)中创建一个容器。
docker start — 启动容器。
这些命令中的每一个都是单独有用的,在不同的背景下有不同的用途。更多信息,请参见 Docker 文档中的Docker run reference(Docker 运行参考资料) 。
下面是一个 docker run 命令的示例;所附文本对所有选项都作了解释。请注意,docker run 命令的选项出现在命令行中映像(image)规范之前,而 InterSystems iris-main 程序的选项(请参见 InterSystems IRIS in Containers(《容器中的 InterSystems IRIS》))出现在之后。在这种情况下,作为 docker run 一部分的 pull 命令不需要运行,因为您已经下载了您想使用的 iris 映像(image)。
docker run --name iris
--detach
--publish 52773:52773
--volume /nethome/pmartinez/iris_external:/external intersystems/iris:2021.1.0.205.0
--key /external/iris.key
--name 容器名称(container name)
指定容器的名称,您可以在其他 Docker 命令中用它来引用该容器,例如,当您想停止该容器时,使用 docker stop container name 。
--detach
在后台运行容器(并显示容器的唯一 ID)。
--Publish 主机端口:容器端口(host_port:container_port)
将容器内的端口发布到主机上的端口,这样容器外(在主机上或其他机器上)的实体就可以与容器内的程序联系。例如,InterSystems IRIS 实例的管理门户(Management Portal)是通过实例的 Web 服务器端口(默认为 52773)访问的。如果容器内的这个端口发布到主机上的端口,那么可以使用主机的端口将实例的管理门户(Management Portal)加载到浏览器中。
--volume 外部存储路径:内部 volume(external_storage_path:internal_volume)
挂载容器可访问的外部存储位置作为容器内部的存储 volume。有关哪些存储位置可以以这种方式挂载以及可能需要的 Docker 配置的信息,请参见 Docker 文档中的 Use Volumes(使用 Volumes ) 。
重要提示: InterSystems 不支持在 InterSystems IRIS 容器中把 NFS 位置作为外部 volume 挂载。
存储库/映像:标签(repository/image:tag)
指定要提取并用于创建容器的映像(请参见 Download the InterSystems IRIS Image(下载 InterSystems IRIS 映像))。使用 docker images 命令来列出可用的映像(image),并确保您指定的是正确的映像(image)。
--Key 许可证密钥路径(license_key_path)
iris-main 选项,它标识了要安装在容器实例中的 InterSystems IRIS 许可证密钥;这个位置必须是在一个挂载的 volume 上。
使用前面的示例和说明来构建您自己的 docker run 命令,并在命令行上执行。当命令完成后,使用 docker ps 命令可以在列表中看到您的容器,状态为 Up。
试一试! 创建您自己的基于 InterSystems IRIS 的容器
$ docker run --name iris --detach --publish 52773:52773
--volume /nethome/pmartinez/iris_external:/external intersystems/iris:2021.1.0.205.0
--key /external/iris.key 426d4a511d6746d89ec2a24cf93b29aa546ea696b479a52210d37da4c6d04883
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
426d4a511d67 intersystems/iris:2021.1.0.205.0 "/iris-main --key ..." 5 seconds ago Up 3 seconds PORTS NAMES
0.0.0.0:52773->52773/tcp iris
注意: InterSystems IRIS 社区版(Community Edition)映像(请参见 Download the InterSystems IRIS Image(下载 InterSystems IRIS 映像))不需要--key 选项 ,该映像附带一个免费的内置许可证。
如果映像尚未在本地存在,但在您组织的存储库中——请参见 Download the InterSystems IRIS Image(下载 InterSystems IRIS 映像),Docker 会在创建和启动容器之前拉取(下载)该映像(image)。
如示例所示,创建容器后,Docker 输出 UUID 长标识符(long identifier); 前 12 个字符组成 UUID 短标识符(short identifier),用于标识其他输出中的容器,例如来自 docker ps 命令的容器。
6.更改实例并将容器作为新映像(Image)提交
当您更改容器内运行的程序时,您可以使用 docker commit 命令从容器中创建一个新映像(image)。这个新映像(image)与您创建容器的原始映像(image)相同,但包括您对容器所作的更改。要了解其工作原理,请遵循以下步骤:
打开容器中 InterSystems IRIS 实例的管理门户(Management Portal)。实例的管理门户(Management Portal)的 URL 包含了实例的主机标识符和 web 服务器端口号 。
主机标识符是运行容器的系统的主机名或 IP 地址;如果您的浏览器与容器运行在同一个系统上,则可以使用 localhost。
Web 服务器端口号是您在使用 docker run 启动容器时发布的实例的 web 服务器端口号,即 52773 的主机端口号。假设您包含了--publish 52773:52773,正如上一节末尾的示例命令中提供的那样,web 服务器端口号是 52773。
例如,在容器主机上,Web 服务器端口为 52773,管理门户(Management Portal)的 URL 将是
http://localhost:52773/csp/sys/%25CSP.Portal.Home.zen。
使用预定义用户帐户之一登录,例如 _SYSTEM,其默认密码是 SYS(请参见 Predefined User Accounts(预定义用户账户))。出于安全考虑,在第一次登录(使用管理门户(Management Portal)或 iris terminal 命令)到容器化的 InterSystems IRIS 实例上的任何预定义账户时,系统会立即提示您更改密码。
注意: 有关更改预定义帐户(强烈建议在生产中这样做)的默认密码(包括在脚本和自动部署中)的更多信息,请参见 Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品》)中的 Authentication and Passwords (身份验证和密码)。
从主页上,选择 System Administration(系统管理) > Configuration(配置) > System Configuration(系统配置) > Namespaces(命名空间) 来显示 Namespaces(名称空间) 页面,然后点击 Create New Namespace(创建新的命名空间) 按钮来显示 New Namespace(新的命名空间) 页面。
创建名为 USER2 的命名空间,方法是在 Name of the namespace box(命名空间框的名称)中输入 USER2,从 Copy from 下拉菜单中选择 USER,清除 Enable namespace for interoperability productions(为互操作性产品启用命名空间) 复选框并确认,点击 Save(保存) 按钮,最后确认您想要复制所有属性和映射。 然后点击 Copy Namespace Mappings(复制命名空间映射) 页面上的 Close(关闭) ,返回到 Namespaces(命名空间) 页面,在该页面上列出了 USER2 命名空间。 您现在已经改变了容器中的实例。
接下来,停止该容器并将其作为名为 iris2 的新映像(image)提交,然后列出可用的映像。
$ docker stop iris
$ docker commit iris acme/iris2:test sha256:7b4adb9f7abf1490a39086665ccd3d255c05163c25cb9a3de8e9421f6ca16b40
$ docker images
REPOSITORY
TAG
IMAGE ID
CREATED
SIZE
acme/iris2
test
421f6ca16b40
8 seconds ago
1.40GB
intersystems/iris
2020.3.0.221.0
15627fb5cb76
1 hour ago
1.39GB
centos
7.3.1611
262f7381844c
2 weeks ago
192MB
hello-world
latest
05a3bd381fc2
7 months ag
1.84kB
最后,删除从原始 iris 映像创建的容器。
$ docker rm iris iris
7.运行和调查第二个基于 InterSystems IRIS 的容器
为了总结这一体验,您将使用 docker run 命令从您刚刚提交的基于 InterSystems-IRIS 的映像中创建并启动一个容器,包括用于持久化特定于实例的数据的持久化 %SYS 功能(durable %SYS feature)。持久化 %SYS (durable %SYS)是保存特定于实例的数据以及您对它所做的任何更改的一种更有用的方法。因为这些数据被保存在容器之外,它可以成为新的 InterSystems IRIS 容器的数据,允许您通过运行后面的映像(image)的容器来升级 IRIS 实例,同时保留以前的容器的数据;当内部容器更改提交到新映像时,这是不可能的。有关持久化 %SYS (durable %SYS)的详细信息,请参见 Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品》)中的 Durable %SYS for Persistent Instance Data(持久化实例数据的持久化 %SYS )。当您启动新容器后,将执行以下操作:
确认在作为一个新映像(image)提交的容器中创建的命名空间(请参见 Change the Instance and Commit the Container as a New Image(更改实例并将容器作为新映像提交))存在于新容器中的 InterSystems IRIS 实例中。
在容器中更改 InterSystems IRIS 实例的设置,并查看它反映在容器外持久化 %SYS (durable %SYS)数据中。
确认您添加的演示文件在容器内存在。
要做到这一点,请遵循以下步骤:
为这个容器确定一个外部存储位置。您可以使用在 Add the License Key to the External Storage Location(添加许可证密钥到外部存储位置)中为前一个容器选择的许可证密钥,也可以选择一个新的。许可证密钥应该仍然在以前的位置。(如果您使用一个新的位置,请确保许可证密钥已经到位)。
创建一个 docker run 命令,类似您在 Run a Container from the InterSystems IRIS Image(从 InterSystems IRIS 映像运行容器)中执行的命令, 基于那里的指令,但有两个更改。
添加选项 --env ISC_DATA_DIRECTORY=pathname
标识持久化 %SYS(durable %SYS) 目录,即写入 InterSystems IRIS 实例的持久化数据(persistent data)的位置。持久化 %SYS目录(durable %SYS directory)必须在一个挂载的 volume 上(请参见--volume 选项和 Add the License Key to the External Storage Location(添加许可证密钥到外部存储位置))。
注意: InterSystems 建议指定挂载 volume 的子目录为持久化 %SYS 的位置。下面的 docker ps 示例显示了这一点。
使用映像:标签(image:tag) 指定新映像
之前,您从 intersystems/iris:2021.1.0.205.0 (即 InterSystems 提供的映像)创建了容器;这次,您使用的是 acme/iris2:test,这是您通过提交更改过的 iris 容器创建的。
调用容器 iris2。当 docker run 命令完成后,使用 docker ps 命令来列出容器并查看其状态。例如:
$ docker run --name iris2 --detach --publish 52773:52773--volume /nethome/pmartinez/iris_external:/external
--env ISC_DATA_DIRECTORY=/external/durable acme/iris2:test
--key /external/iris.key bdfe214ef76a34290a8308cddce92162aae14df1ba1bc244e692af3c8d911a3e
$ docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS
af3c8d911a3e acme/iris2:test "/iris-main --key ..." 5 seconds ago Up 3 seconds PORTS NAMES
0.0.0.0:52773->52773/tcp iris2
注意: InterSystems IRIS 社区版(Community Edition)映像(请参见 Download the InterSystems IRIS Image(下载 InterSystems IRIS 映像))不需要--key 选项,该映像附带一个免费的内置许可证。
Docker Compose 是一个用于定义和运行多容器应用程序的工具,为 Docker 命令行交互提供了替代方案。要使用 Compose,您需要创建 docker-compose.yml ,其中包含您想要创建、启动和管理的容器的规范,然后使用 docker-compose 命令。更多信息,请参见 Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品》)中的 Running an InterSystems IRIS Container:Docker Compose Example(运行 InterSystems IRIS 容器:Docker Compose 示例),和 Docker 文档中的 Overview of Docker Compose(Docker Compose 概述)。
确认从已更改的 InterSystems 容器提交的更改
在 Change the Instance and Commit the Container as a New Image(更改实例并将容器作为新映像提交)中,您在从 InterSystems 提供的映像 intersystems/iris:2021.1.0.205.0 创建的容器中为 InterSystems IRIS 实例添加了一个命名空间,然后将该容器作为一个新映像 acme/iris2:test 提交。因此,您添加的命名空间应该存在于运行在 iris2 容器内的 InterSystems IRIS 实例中,该容器是从 acme/iris2:test 创建的。
要确认这一点,请执行以下操作:
打开管理门户(Management Portal)并登录,如 Change the Instance and Commit the Container as a New Image(更改实例并将容器作为新映像提交)中所述。
从主页上,选择 System Administration(系统管理) > Configuration(配置) > System Configuration(系统配置) > Namespaces(命名空间),来显示命名空间(Namespaces)页面;在 iris 容器中创建的 USER2 命名空间被列出。
探索和更改持久化 %SYS 目录
要探索 InterSystems IRIS 容器的持久化 %SYS 功能,请执行以下操作:
要查看 InterSystems IRIS 在容器外写入的特定于实例的数据,因为您在 docker run 命令中包含了持久化 %SYS 环境变量,显示您在该变量中指定的目录的内容,该目录在您使用--volume 选项指定的存储位置,作为要挂载的外部 volume。例如,如果该目录被指定为 /nethome/pmartinez/iris_external/durable,如示例 docker run 中所示,您会做如下操作
$ cd /nethome/pmartinez/iris_external
$ ls
durable iris.key
$ ls durable
csp dist httpd iris.cpf iris.cpf_20180417 _LastGood_.cpf mgr
$ ls durable/mgr
alerts.log irisaudit iris.ids irislocaldata iristemp IRIS.WIJ journal.log startup.last SystemMonitor.log user ilock IRIS.DAT iris.lck iris.shid iris.use journal messages.log stream Temp
返回容器中 InterSystems IRIS 实例的管理门户(Management Portal),选择 System Administration(系统管理)
> Configuration(配置) > System Configuration(系统配置) > Journal Settings(日志设置) 以显示日志设置(Journal Settings)页面。 Secondary journal directory(二级日志目录)设置从 /external/durable/mgr/journal/ 更改为 /external/durable/mgr/journal2/,并点击 Save(保存)。
返回到命令行,再次列出持久化 %SYS 目录的 mgr 子目录:
$ ls /nethome/pmartinez/iris_external/durable/mgr
alerts.log irisaudit iris.ids iris.lck iris.shid iris.use journal
journal.log
messages.log
stream
Temp
ilock
IRIS.DAT
iris.key
irislocaldata
iristemp
IRIS.WIJ
journal2
licmanager.port
startup.last
SystemMonitor.log
user
由于您对容器内的 InterSystems IRIS 实例进行了更改,所以 journal2 子目录被添加到容器外 。
这个示例显示了持久化 %SYS (durable %SYS)如何使您通过从新映像(image)创建容器来升级容器化的 InterSystems IRIS 实例。您对实例所做的所有持久化更改都存储在容器外的持久化 %SYS 目录(durable %SYS directory);如果您使用所需的选项从任何 InterSystems IRIS 映像(image)创建并启动一个新容器 — 即--volume 选项为持久化 %SYS (durable %SYS)挂载外部存储位置,以及--env ISC_DATA_DIRECTORY 选项指定该挂载 volume 上持久化 %SYS(durable %SYS) 位置,该位置必须存在,并且包含一个 /mgr 子目录 — 这些更改由实例继承,因为它使用与前一个容器中的实例相同的数据。
4.了解有关容器中的 InterSystems IRIS 的更多信息
此时,您已经准备好继续探索容器和 InterSystems IRIS 必须提供的东西。使用下面的文档和参考资料来深入了解容器和 InterSystems IRIS。
Docker Containers and InterSystems IRIS(《Docker 容器和 InterSystems IRIS》) (视频)
Running InterSystems Products in Containers(《在容器中运行 InterSystems 产品》)
来自 InterSystems 开发者社区(Developer Community)的文章:
What is a Container?(《什么是容器?》)
What is a Container Image?(《什么是容器映像?》)
Using InterSystems IRIS Containers with Docker for Windows(《使用 InterSystems IRIS 容器与 Docker for Windows》)
Docker Documentation(《Docker 文档》)
InterSystems Cloud Manager Guide(《InterSystems 云管理器指南》)——使用 InterSystems 云管理器(InterSystems Cloud Manager,ICM)可以轻松直观地配置基础设施,并以各种方式在上面部署容器。ICM 为 InterSystems IRIS 带来了基础设施即代码(Infrastructure as Code,IaC)和容器化部署的好处,而不需要在新技术、培训、配置和管理方面进行重大投资。本指南包含有关 ICM 和使用 InterSystems IRIS 与 Docker 容器的文档。
First Look:InterSystems Cloud Manager(《技术概要:InterSystems 云管理器》)
公告
Claire Zheng · 六月 22
适用于 InterSystems IRIS® 数据平台、InterSystems IRIS® for HealthTM 和 HealthShare® Health Connect 的维护版本 2024.1.4 和 2023.1.6 现已正式发布 (GA)。 这些版本包含对最近发布的以下提醒的修复 - 提醒:SQL 查询返回错误结果 | InterSystems。 请通过开发者社区分享您的反馈,以便我们可以共同打造更出色的产品。
文档
您可以在以下页面上找到详细的变更列表和升级核对清单:
InterSystems IRIS
InterSystems IRIS for Health
HealthShare Health Connect
抢先体验计划 (EAP)
目前提供多个 EAP。 请查看此页面并注册您感兴趣的 EAP。
如何获取软件?
InterSystems IRIS 和 InterSystems IRIS for Health 的完整安装包可以从本 WRC 的 InterSystems IRIS 数据平台完整工具包页面 获取。 HealthShare Health Connect 工具包可以从 WRC 的 HealthShare 完整工具包页面获取。 容器镜像可以从 InterSystems 容器注册表中获取。
可用性和软件包信息
此版本提供了适用于所有受支持平台的经典安装包,以及 Docker 容器格式的容器镜像。有关完整列表,请参阅“支持的平台”文档。 这些维护版本的内部版本号为:2024.1.4.512.0 和 2023.1.6.809.0。
文章
Claire Zheng · 三月 24, 2022
众所周知,InterSystems IRIS的产品设计理念源于互操作性(Interoperable)、稳定性(Reliable)、直观(Intuitive)、可扩展性(Scalable),在云时代,InterSystems IRIS的云上操作与本地一样便捷,令用户体验有了明显提升。为了更高效地对InterSystems IRIS进行配置,我们还提供了哪些新特性?为了便捷地进行数据迁移,InterSystems IRIS最新版本提供了哪些解决方案?本期视频中,InterSystems中国销售工程师吕正之、马浩和WRC产品支持专家杨乐乐对此进行了解答。
公告
jieliang liu · 五月 21, 2021
由于这是一个**预览版**,我们渴望在下个月的通用版发布之前了解您对这个新版本的经验。请通过[开发者社区](https://community.intersystems.com/)分享您的反馈,以便我们能够共同打造一个更好的产品。
**InterSystems IRIS数据平台2021.1**是一个扩展维护(EM)版本。自2020.1(上一个EM版本)以来,在持续交付(CD)版本中增加了许多重要的新功能和改进。请参考[2020.2](https://irisdocs.intersystems.com/iris20202/csp/docbook/DocBook.UI.Page.cls?KEY=GCRN)、[2020.3](https://irisdocs.intersystems.com/iris20203/csp/docbook/DocBook.UI.Page.cls?KEY=GCRN)和[2020.4](https://irisdocs.intersystems.com/iris20204/csp/docbook/DocBook.UI.Page.cls?KEY=GCRN)的发布说明,了解这些内容的概况。
这个版本的增强功能为开发人员提供了更大的自由度,可以用他们选择的语言构建快速和强大的应用程序,并使用户能够通过新的和更快的分析功能更有效地消费大量的信息。
通过InterSystems IRIS 2021.1,客户可以部署**[InterSystems IRIS Adaptive Analytics](https://www.intersystems.com/sg/resources/detail/intersystems-adaptive-analytics/)**,这是一个附加产品,它扩展了InterSystems IRIS,为分析终端用户提供了更大的易用性、灵活性、可扩展性和效率,而不管他们选择何种商业智能(BI)工具。它能够定义一个有利于分析的业务模型,并通过在后台自主构建和维护临时数据结构,透明地加速针对该模型运行的分析查询工作负载。
这个版本中的其他重点新功能包括
* 一套综合的**外部语言网关**,改进了可管理性,现在包括R和Python,可以用你选择的语言构建强大和可扩展的服务器端代码
* **InterSystems Kubernetes Operator**(IKO)为你的环境提供声明式配置和自动化,现在还支持部署InterSystems System Alerting & Monitoring(SAM)。
* **InterSystems API Manager v1.5**,包括改进的用户体验和Kafka支持
* **IntegratedML**的主流版本,使SQL开发人员能够在纯粹的SQL环境中直接构建和部署机器学习模型
**InterSystems IRIS for Health 2021.1**包括InterSystems IRIS的所有增强功能。此外,该版本通过针对FHIR数据解析和评估FHIRPath表达式的API,进一步扩展了该平台对FHIR®标准的广泛支持。这是对2020.1以来发布的重要的FHIR相关功能的补充,包括对**FHIR Profiles**、**FHIR R4 Transforms**和**FHIR客户端API**的支持。
关于所有这些功能的更多细节可以在产品文档中找到:
InterSystems IRIS 2021.1 documentation and 文档和发布说明
InterSystems IRIS for Health 2021.1 documentation and 文档和发布说明
HealthShare Health Connect 2021.1 documentation and 文档和发布说明
EM版本带有所有支持平台的经典安装包,以及OCI(Open Container Initiative)又称Docker容器格式的容器镜像。 完整的清单,请参考[支持平台文件](https://docs.intersystems.com/iris20211/csp/docbook/Doc.View.cls?KEY=ISP_technologies#ISP_platforms_server)。
安装包和预览密钥可以从WRC的[预览版本下载网站](https://wrc.intersystems.com/wrc/coDistPreview.csp)获得。
InterSystems IRIS和IRIS for Health的**企业版**的容器镜像以及所有相应的组件都可以从[InterSystems容器注册表](https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=PAGE_containerregistry)使用以下命令获得。
docker pull containers.intersystems.com/intersystems/iris:2021.1.0.205.0
docker pull containers.intersystems.com/intersystems/irishealth:2021.1.0.205.0
关于可用镜像的完整列表,请参考[ICR文档](https://docs.intersystems.com/components/csp/docbook/Doc.View.cls?KEY=PAGE_containerregistry#PAGE_containerregistry_images)。
**社区版**的容器镜像也可以使用以下命令从[Docker商店](https://hub.docker.com/_/intersystems-iris-data-platform)拉取:
docker pull store/intersystems/iris-community:2021.1.0.205.0
docker pull store/intersystems/iris-community-arm64:2021.1.0.205.0
docker pull store/intersystems/irishealth-community:2021.1.0.205.0
docker pull store/intersystems/irishealth-community-arm64:2021.1.0.205.0
另外,所有容器镜像的tarball版本都可以通过WRC的[预览版本下载网站](https://wrc.intersystems.com/wrc/coDistPreview.csp)获得。
InterSystems IRIS Studio 2021.1是一个独立的IDE,用于Microsoft Windows,可以通过WRC的[预览版本下载网站](https://wrc.intersystems.com/wrc/coDistPreview.csp)下载。它与InterSystems IRIS和IRIS for Health 2021.1及以下版本一起使用。InterSystems还支持VSCode-ObjectScript插件,用于用**[Visual Studio Code为InterSystems IRIS开发应用程序](https://intersystems-community.github.io/vscode-objectscript/)**,该插件可用于Microsoft Windows、Linux和MacOS。
其他独立的InterSystems IRIS 2021.1组件,如ODBC驱动程序和Web网关,可从同一页面获得。
该预览版的构建号是2021.1.0.205.0。
文章
Claire Zheng · 十一月 8, 2021
快速了解InterSystems客户服务理念,以及InterSystems TrakCare、HealthShare、IRIS数据平台的最新产品动态!
公告
Louis Lu · 四月 23, 2021
InterSystems IRIS、IRIS for Health和HealthShare Health Connect的2021.1版本的预览版现已发布。
由于这是一个预览版,我们希望在下个月的通用版本发布之前了解您对这个新版本的体验。请通过开发者社区分享您的反馈,以便我们能够共同打造一个更好的产品。
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)工具。它能够定义一个利于分析的业务模型,并通过在后台自主构建和维护临时数据结构,透明地加速针对该模型运行分析查询时的工作负载。
这个版本中的其他重点新功能包括
一套综合的外部语言网关,改进了可管理性,现在包括R和Python,可以用您选择的语言构建强大和可扩展的服务器端代码InterSystems Kubernetes Operator(IKO)为您的环境提供声明式配置和自动化,现在还支持部署InterSystems System Alerting & Monitoring(SAM)。InterSystems API Manager v1.5,包括改进的用户体验和对Kafka的支持IntegratedML的主流版本,使SQL开发人员能够在纯粹的SQL环境中直接构建和部署机器学习模型
InterSystems IRIS for Health 2021.1包括InterSystems IRIS的所有增强功能。此外,该版本通过针对FHIR数据解析和评估FHIRPath表达式的API,进一步扩展了该平台对FHIR®标准的广泛支持。这是对2020.1以来发布的重要的FHIR相关功能的补充,包括对FHIR Profiles、FHIR R4 Transforms和FHIR客户端API的支持。
关于所有这些功能的更多细节可以在产品文档中找到。
InterSystems IRIS 2021.1文档和发布说明InterSystems IRIS for Health 2021.1文档和发布说明HealthShare Health Connect 2021.1 文档和发布说明
EM版本包括所有支持平台的传统安装包,以及OCI(Open Container Initiative)又称Docker容器格式的容器镜像。 完整的清单,请参考支持平台文档。
安装包和预览密钥可以从WRC的预览下载网站获得。
InterSystems IRIS和IRIS for Health的企业版的容器镜像以及所有相应的组件都可以从InterSystems容器注册处使用以下命令获得。
docker pull containers.intersystems.com/intersystems/iris:2021.1.0.205.0
docker pull containers.intersystems.com/intersystems/irishealth:2021.1.0.205.0
关于可用镜像的完整列表,请参考ICR文档。
社区版的容器镜像也可以使用以下命令从Docker商店拉取。
docker pull store/intersystems/iris-community:2021.1.0.205.0
docker pull store/intersystems/iris-community-arm64:2021.1.0.205.0
docker pull store/intersystems/irishealth-community:2021.1.0.205.0
docker pull store/intersystems/irishealth-community-arm64:2021.1.0.205.0
另外,所有容器镜像的tarball版本都可以通过WRC的预览下载网站获得。
InterSystems IRIS Studio 2021.1是一个独立的IDE,用于Microsoft Windows,可以通过WRC的预览下载网站下载。它与InterSystems IRIS和IRIS for Health 2021.1及以下版本一起使用。InterSystems还支持 VSCode-ObjectScript 插件,用于将 Visual Studio Code 做为 InterSystems IRIS 开发IDE,该插件可用于Microsoft Windows、Linux和MacOS。
其他独立的InterSystems IRIS 2021.1组件,如ODBC驱动程序和Web网关,可从同一页面获得。
该预览版的构建号是 2021.1.0.205.0。
通过www.DeepL.com/Translator(免费版)翻译
公告
Claire Zheng · 十月 24, 2022
各位开发者社区的同学们,大家好!
我们的🏆InterSystems开发者社区中文版首届技术征文大赛🏆(←点击链接进入参赛页面,浏览所有参赛文章)已经结束,此次大赛收到了来自20名参赛者的30篇参赛文章,感谢大家的积极参与!
以下是获奖名单!
1. 专家提名奖:活动期间发布文章且成功参赛后,由InterSystems专家评选得出
🥇一等奖1名,Apple iPad
@Zhe Wang
获奖作品:IRIS如何进行CRUD操作
🥈二等奖2名,Beats Fit Pro
@姚 鑫
获奖作品:IRIS与Caché的23种设计模式
@聆严 周
获奖作品:使用Prometheus监控Cache集群
🥉三等奖3名,WD 固态硬盘
@John Pan
获奖作品:如何调用Ensemble/IRIS内置的HL7 V2 webservice - Java,PB9,Delphi7样例
@he hf
获奖作品:10分钟快速开发一个连接到InterSystems IRIS数据库的C#应用
@sun yao
获奖作品:前端操作自动生成BS、BP、BO
2. 开发者社区奖:活动期间发布文章且成功参赛后,由社区成员点赞评选得出,点赞前五名获得以下奖品
🥇第一名,HUAWEI WATCH 3智能手表
@Meng Cao
获奖作品:Caché数据库私有apache版本升级
🥈第二名,罗技(Logitech)ERGO键盘
@lizw lizw
获奖作品:关于%Dictionary.CompiledClass类在实际业务中的一些应用
🥉第三名-第五名,KEEP 运动智能手环
@Chang Liu
获奖作品:在国产系统上安装Healthconnect2021
@shaosheng shengshao
获奖作品:HEALTHSHARE2018版如何实现AES(CBC)的HEX输出,并可以实现加密和解密
@Guangliang Zhang
获奖作品:基于cconsole.log的cache数据库的实时监控
3. 入围奖:在征文大赛期间,所有在InterSystems开发者中文社区发布文章且成功参赛的其余用户都将获得特别奖励。
@water huang
获奖作品:对 %XML.PropertyParameters类的探索
@zhanglianzhu zhanglianzhu
获奖作品:Cache死循环检测和申明式事务
@li wang
获奖作品:HealthConnect访问HTTPS开头地址
@bai hongtao
获奖作品:第三方HA软件结合MIRROR使用方法探讨
@Liu Tangh
获奖作品:在Cache系统中使用负载均衡服务的探讨
@yaoguai wan
获奖作品:IRIS架构的浅显理解以及windows10、docker安装IRIS Health详解流程及部分问题浅析
@li dong
获奖作品:实现Cache/IRIS中zip文件的下载、解压及读取
@Yuxiang Niu
获奖作品:Cache中不同类型锁的理解与分析
@Vincent Wu
获奖作品:TrakCare Lab之延伸应用-护理站自动采检备管系统(NSAD)之开发
感谢大家的积极参与!
请获奖嘉宾及时通过此链接提交相关信息,以便我们及时与您联系奖品寄送事宜。
文章
Jingwei Wang · 九月 6, 2022
在Windows中,InterSystems IRIS 会将Python引擎一起安装在安装目录中,可以将Python的代码在InterSystems IRIS内核中运行,允许Python代码与ObjectScript代码混合运行,以获得最佳开发性能。一般基于UNIX的操作系统会自带一个Python,所以不会随InterSystems IRIS安装包自动安装Python引擎。
在InterSystems IRIS 2021.2 以上的版本中才支持Embedded Python,其余版本不支持使用Embedded Python
步骤 - Windows
在Microsoft Windows 上安装InterSystems IRIS 2022.2版本
Python 引擎同InterSystems IRIS 安装包安装在C:\InterSystems\IRISHealth\lib\python 文件夹下(如果使用默认安装路径)。
在C:\InterSystems\IRISHealth\lib\python 文件夹下,查看Python的版本,版本应为Python 3.9.5
C:\InterSystems\IRISHealth\lib\python>python --version
使用pip下载pandas库,其中InterSystems\IRIS\mgr\python路径根据安装路径进行更改。(其他python库,也按照此方法下载)
C:\InterSystems\IRISHealth\bin>irispip install --target C:\InterSystems\IRIS\mgr\python pandas
将Data.Titanic数据导入InterSystems IRIS,或者创建一个其它的表,然后插入任何数据。
使用InterSystems IRIS Studio创建一个Sample.EmbeddedPython类,其中Data.Titanic 可以改为任意你自己创建好的表。[ Language = python ]表示此方法为一个Python方法,里面使用的是Python开发语言。
/// Embedded Python examples from summer 2022
Class Sample.EmbeddedPython Extends %RegisteredObject
{
ClassMethod dfexample() As %Status
{
set st = ..CreateDataFrame("Name, Super, TimeCreated")
}
// Execute a SQL query from Python and import it into a pandas dataframe
ClassMethod CreateDataFrame(myfields As %String) As %Numeric [ Language = python ]
{
import iris
import pandas as pd
#; works with all IRIS installs
#; rs = iris.sql.exec("SELECT " + myfields + " FROM %Dictionary.ClassDefinition WHERE Name %STARTSWITH '%Net.'")
#; works with Titanic sample data
rs = iris.sql.exec("SELECT * FROM Data.Titanic")
df = rs.dataframe()
print(df.describe())
return True
}
}
在InterSystems IRIS Terminal执行,即可通过Python查看Data.Titanic 表中所有的数据。
do ##class(Sample.EmbeddedPython).dfexample()
步骤 - UNIX
在UNIX操作系统上安装InterSystems IRIS 2022.2版本
一般基于UNIX的操作系统会自带一个Python, 也可以按照下列方式重新安装Python。
macOS: Install Python 3.9 using Homebrew (https://formulae.brew.sh/formula/python@3.9Opens in a new tab)
Ubuntu: apt-get install python3
Red Hat Enterprise Linux or Oracle Linux: yum install python3
SUSE: zypper install python3
使用pip下载pandas库,其中InterSystems\IRIS\mgr\python路径根据安装路径进行更改。(其他python库,也按照此方法下载)
$ pip3 install --target /InterSystems/IRIS/mgr/python numpy
将Data.Titanic数据导入InterSystems IRIS,或者创建一个其它的表,然后插入任何数据。
使用InterSystems IRIS Studio创建一个Sample.EmbeddedPython类,其中Data.Titanic 可以改为任意你自己创建好的表。[ Language = python ]表示此方法为一个Python方法,里面使用的是Python开发语言。
/// Embedded Python examples from summer 2022
Class Sample.EmbeddedPython Extends %RegisteredObject
{
ClassMethod dfexample() As %Status
{
set st = ..CreateDataFrame("Name, Super, TimeCreated")
}
// Execute a SQL query from Python and import it into a pandas dataframe
ClassMethod CreateDataFrame(myfields As %String) As %Numeric [ Language = python ]
{
import iris
import pandas as pd
#; works with all IRIS installs
#; rs = iris.sql.exec("SELECT " + myfields + " FROM %Dictionary.ClassDefinition WHERE Name %STARTSWITH '%Net.'")
#; works with Titanic sample data
rs = iris.sql.exec("SELECT * FROM Data.Titanic")
df = rs.dataframe()
print(df.describe())
return True
}
}
在InterSystems IRIS Terminal执行,即可通过Python查看Data.Titanic 表中所有的数据。
do ##class(Sample.EmbeddedPython).dfexample()
注意事项
如果你得到一个 "Failed to load python " 或者python3 distinct from irispython not found: No such file or directory的错误,这意味着你要么没有安装Python,要么在你的系统上安装了一个其他的Python版本。请通过上述方式,安装Python。
为了防止运行嵌入式Python时出现IRIS_ACCESSDENIED错误,请启用%Service_Callin。在管理门户中,进入系统管理 > 安全 > 服务,选择 %Service_CallIn,并选中已启用的服务框。
在基于 UNIX 的系统上,你需要用 pip3 命令来安装 Python 包。如果你还没有安装 pip3,用你系统的软件包管理器安装 python3-pip 包。