搜索​​​​

清除过滤器
文章
Jingwei Wang · 九月 6, 2022

Embedded Python - 安装及初步使用

在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 包。
公告
Claire Zheng · 三月 1, 2021

InterSystems编程大奖赛投票时间:来为最佳App投票!

亲爱的社区开发者们: 本周进入 InterSystems 编程大奖赛 的投票时间! 来为你心目中基于InterSystems IRIS而构建的最佳方案投票吧! 🔥 点击投票 投票入口 🔥 如何投票?有哪些最新信息值得了解一下? 所有社区开发者都可以为自己提交的项目投票——投票将根据用户的Global Master级别自动计入专家提名奖(Experts Nomination)和社区提名奖(Community Nomination)。 所有InterSystems员工都可以为专家提名奖(Experts Nomination)或社区提名奖(Community Nomination)投票。 根据目前的投票引擎和算法,您可以选择三个项目进行投票,选出您心目中的一、二、三名。 以下是社区排行榜说明: 社区(Community)提名投票计分方式: 提名 得分 第一名 3 第二名 2 第三名 1 专家(Experts)提名投票计分会有更复杂的数学计算,不同级别的专家有更多的“点数”权力: 专家(Experts)提名投票计分方式: 级别 提名 第一名 第二名 第三名 VIP级:总经理,版主,产品经理 9 6 3 Global Masters中的专家(Expert)级 6 4 2 Global Masters中的专业(Specialist)级 3 2 1 专家(Experts)提名投票也将为按“3-2-1”为社区排行榜贡献出分数。 投票 1. 登录 Open Exchange – 使用开发者社区的账号即可登录。 2. 在开发者社区进行的任何有效贡献后——回答或提问,写一篇文章,对任何帖子发表评论,您就会看到可用的投票按钮。 如果您改变了主意,可以取消并投票给其他您看中的应用——从3月1日-3月7日,您有七天的时间充分选择! 提醒:在投票期间,参赛者可以继续修复bug,提升应用,所以投票者不要错过最新发布的版本哦~ ➡️ 请查收最新的 InterSystems在线竞赛投票规则. 还剩三天,北京时间3月8日中午12点截止,请大家抓紧投票! 我会为我欣赏的项目投票! 介绍的很详细,非常感谢!
公告
Claire Zheng · 五月 12, 2021

在AWS上免费申请应用InterSystems IRIS FHIR 加速器服务 (FHIRaaS) !

亲爱的社区开发者们,大家好! InterSystems开发者竞赛:FHIR加速器 已于5月10日开启! 我们邀请所有FHIR开发者们在AWS上使用InterSystems IRIS FHIR加速器服务 (FHIRaaS)上开发或测试您的应用。 现在,我们为您提供绝佳机会,您可以在AWS上免费访问FHIRaaS! 那么,掌握FHIRaaS的第一步,是使用URL的特殊code在ISC Dev FHIR Portal 门户注册,链接如下:👉🏼 https://portal.trial.isccloud.io/account/signup 点击上面的链接,遵循相应步骤,即可掌控InterSystems FHIRaaS! 关于此次竞赛的任何疑问,请随时跟帖提问,或在 discord-contests channel 中提问。 再次欢迎大家加入此次竞赛,成为InterSystems FHIRaaS 大师! ✌🏼 Happy coding! :) 原帖更新: 您可以在AWS上免费访问FHIRaaS! 那么,掌握FHIRaaS的第一步,是使用URL的特殊code在ISC Dev FHIR Portal 门户注册,链接如下:👉🏼 https://portal.trial.isccloud.io/account/signup 不要错过哦!
文章
Louis Lu · 九月 22, 2021

IRIS 2021 技术文档 First Look 5-- 技术概要:InterSystems SQL

技术概要(First Look)有助于您了解在InterSystems IRIS ®数据平台中如何使用SQL:标准的SQL功能、特有功能以及如何快速上手使用。 要体验技术概要(First Look)的所有内容 ,您可以在InterSystems IRIS的免费评估实例上执行相关操作 ,请参阅InterSystems First Looks(《InterSystems 技术概要》)。 1. InterSystems SQL: 特性和性能 InterSystems IRIS 提供高性能、功能完善的 SQL。在 InterSystems IRIS 中使用SQL,包括在单个CPU内核上运行查询,到使用数十个内核的CPU上并行执行查询,已至在InterSystems IRIS服务器集群上运行分布式查询。 在InterSystems IRIS中,可以使用 SQL 的范围包括: 联接(Joins) 灵活、高性能索引 聚合函数和分组 以SQL或InterSystems ObjectScript (以下简称“ObjectScript” )编写的存储过程 JDBC和ODBC连接 自动并行查询 透明分布式查询 InterSystems SQL提供了强大的工具来实现最佳的SQL查询性能。其中一个工具是使用压缩位图索引:使用紧凑、高度有效的结构和向量化的CPU指令, InterSystems SQL可以只用单个内核即可执行每秒数十亿行的聚合操作以及检查逻辑判断条件。本指南的后续内容将提供位图索引的示例。 想要快速尝试InterSystems IRIS的SQL功能吗?查看SQL QuickStart! 2. 演示:SQL Shell 可以通过各种应用程序接口、交互式客户端和标准协议在InterSystems IRIS中执行SQL ,包括: 用于交互式SQL语句执行的InterSystems IRIS SQL Shell ODBC和JDBC客户端、交互式应用(例如, SQuirreL SQL或WinSQL )或通过将InterSystems IRIS驱动程序嵌入使用的应用程序 InterSystems IRIS管理门户中的System Explorer,为执行SQL提供了交互式的Web界面 在ObjectScript类中执行嵌入式SQL或动态SQL 如果在阅读本指南后,想了解这些主题的更多有关信息,请参阅下面的“了解有关InterSystems SQL的更多信息”。 此示例向您展示如何使用SQL Shell交互式执行SQL语句,或执行文件中的SQL语句。 2.1 用前须知 要使用该程序,需要一个正在运行的InterSystems IRIS实例。可以选择多种类型的已授权的免费评估实例;该实例不必存储在正在运行的系统(尽管它们可以互相进行网络访问)。如何部署每个类型的实例(如果您还没有要使用的实例)的有关信息,请参阅 InterSystems IRIS Basics: Connecting an IDE(《InterSystems IRIS 基础:连接一个 IDE》)中的Deploying InterSystems IRIS(部署 InterSystems IRIS)。 还需要从GitHub存储库https://github.com/intersystems/FirstLook- SQLBasics获取本指南的实用程序文件。应该克隆存储库来下载以下文件: stock_table_demo_one.sql ,其中包含用于创建和加载小型( 20行)存量数据的表格的SQL语句 stock_table_demo_two.csv ,其中包含一百万行存量表数据 Loader.xml ,包含实用程序方法的类文件,用于将数据从stock_table_demo_two.csv加载到InterSystems IRIS表中 注意: stock_table_demo_two.csv 非常大 ,要下载它之前需要安装Git Large File Storage。 必须通过该实例访问FirstLook-SQLBasics源。下载文件的程序取决于所使用的实例类型,如下所示: 如果使用的是ICM部署的实例: 1.使用具有-machine 和-interactive 选项的 icm ssh 命令在储存该实例的节点上打开默认shell ,例如: icm ssh -machine MYIRIS-AM-TEST-0004 -interactive 2. 在Linux命令行上,使用以下命令之一将存储库克隆到该实例的数据存储卷(data storage volume)。 例如,对于部署在Azure上的配置,数据卷的默认装入点为 /dev/sdd ,因此应使用如下命令: $ git clone https://github.com/intersystems/FirstLook-SQLBasics /dev/sdd/FirstLook-SQLBasics 或者使用命令: $ wget -qO- https://github.com/intersystems/FirstLook-SQLBasics/archive/master.tar.gz | tar xvz -C /dev/sdd 这些文件现在可以通过容器文件系统的/irissys/data/FirstLook-SQLBasics 目录被InterSystems IRIS获取。 如果您使用的是通过其他方式部署的容器化实例(授权的版本或社区版本): 1. 在主机上打开Linux命令行。(如果您在云节点上使用社区版本 ,请使用SSH连接到节点,如部署和浏览InterSystems IRIS中所述。) 2. 在Linux命令行上,使用git clone或wget命令,如上所述,将存储库克隆到加载为容器中的数据卷的存储位置。 对于社区版实例,可以克隆到该实例的%SYS 目录(社区版实例指定的配置数据存储的位置)。在Linux文件系统上,此目录为/opt/ISC/dur。该文件可以在容器文件系统的/ISC/dur/FirstLook-SQLBasics目录下被InterSystems IRIS获取。 对于授权的容器化实例,选择加载为容器中的数据卷的存储位置(包括durable%SYS 目录,如果使用的话)。例如,如果您的docker run命令包括选项 -v /home/user1:/external,然后将存储库克隆到/home/user1 ,这些文件在容器文件系统上的/external/FirstLook-SQLBasics目录中可被Inter- Systems IRIS获取。 如果您使用的是InterSystems Learning Labs实例: 1. 在集成的IDE中打开命令行终端。 2. 将目录更改为/home/project/shared ,并使用 git clone命令克隆存储库: $ git clone https://github.com/intersystems/FirstLook-SQLBasics 该文件夹添加到“Shared”下左侧的Explorer面板,且该目录可在InterSystems IRIS 选择路径的 /home/project/shared下被获取。 如果您使用的是已安装的实例: 如果实例的主机是安装有GitHub Desktop和GitHub Large File Storage 的Windows系统: a. 在主机的web浏览器中转到 https://github.com/intersystems/FirstLook-SQLBasics。 b. 选择Clone or download ,然后选择 Open in Desktop。 这些文件可在GitHub目录中被InterSystems IRIS 获取,例如 C:\ Users\ User1\ Documents\ GitHub\ FirstLook-SQLBasics。 如果主机是Linux系统,只需使用Linux命令行上的git clone命令或wget命令将存储库克隆到您选择的位置即可。 2.2 使用SQL脚本文件创建和填充表 为达到演示目的,我们使用一个SQL脚本文件,stock_table_demo_one.sql,来创建并加载包含几行示例数据的表。 创建和加载表格: 打开InterSystems 终端terminal。将看到如下交互式提示: USER> 此提示表示您目前在 USER 命名空间(namespace)中,默认情况下该空间为空,可供客户自由使用。从该提示开始,可以执行ObjectScript。 通过输入如下命令立刻打开SQL Shell DO $SYSTEM.SQL.Shell() 这将输出以下内容: SQL Command Line Shell The command prefix is currently set to: <<nothing>>. Enter q to quit, ? for help. [SQL]USER>> 将当前SQL数据库方言设置为IRIS: SET DIALECT=IRIS 要运行stock_table_demo_one.sql中的语句,请输入命令 RUN <Path>stock_table_demo_one.sql 其中Path是放置文件的位置(请参阅前面的用前须知)。系统会提示您为日志文件指定名称,日志文件包含文件中的语句及其输出结果、如何处理错误以及语句分隔符。接受所有默认值。 语句创建一个表格并插入20行。文件的前几行是: CREATE TABLE FirstLook.StockTableDemoOne (ClientID INTEGER, BrokerID INTEGER, Symbol VARCHAR(10), TransactionType VARCHAR(4), TransactionDate TIMESTAMP,Quantity INTEGER, Price DECIMAL(15,2), CommmissionRate DECIMAL(15,2)) GO INSERT INTO FirstLook.StockTableDemoOne (ClientID, BrokerID, Symbol, TransactionType, TransactionDate, Quantity, Price, CommmissionRate) VALUES (29834783, 3103, 'RTYU', 'SELL', '2016-01-03', 342, 5.05, 3.25) GO 当脚本运行时,在处理每个SQL语句后将看到输出结果: 1. INSERT INTO FirstLook.StockTableDemoOne (ClientID, BrokerID, Symbol, 2. TransactionType, TransactionDate, Quantity, 3. Price, CommissionRate) 4. VALUES (92609349, 3103, 'HWVT', 'BUY', '2017-10-25', 1500, 451.09, 3.25) 1 Row Affectedu 处理完所有语句后, SQL Shell会列出编译的语句数量以及报告的错误和警告,并报告已用时间: Statements .................compiled: 21 .....with errors reported: 0 ...with warnings reported: 0 Elapsed time: .125181 seconds 2.3 在SQL Shell中直接运行查询 有了已填充的表后,可以对它运行查询。可以使用单行或多行模式来执行此操作,但后者可能更方便。 若要进入多行模式,请根据提示按Enter键。将看到处于多行模式的确认信息。 输入以下SQL语法,逐行输入。关键字GO 指示shell执行查询并退出多行模式: SELECT BrokerID, TO_CHAR((Quantity * Price),'9,999,999.99') as SubTotal, TransactionDate FROM FirstLook.StockTableDemoOne WHERE TransactionType='SELL' ORDER BY SubTotal DESC GO 您输入的语句将与SQL Shell呼应,后附查询结果。 BrokerID SubTotal TransactionDate 5001 302780.00 2017-11-06 09:51:24.735 5002 92350.00 2018-01-15 22:21:17.638 3103 57645.00 2017-09-24 19:36:43.079 3103 45015.00 2016-10-31 19:21:08.913 5001 23180.50 2017-07-31 23:05:49.83 5001 13113.60 2015-11-13 22:13:49.457 5001 12636.00 2015-10-13 05:50:23.209 3103 1727.10 2016-01-03 13:59:01.098 1009 1693.50 2016-01-15 18:18:15.346 在查询结果后,您将看到准备和执行语句所需时间的信息: 9 Rows(s) Affected statement prepare time(s)/globals/cmds/disk: 0.0625s/47683/263292/0ms execute time(s)/globals/cmds/disk: 0.0006s/64/2903/0ms cached query class: %sqlcq.USER.cls47 准备步骤包括从一条SQL语句的语法到生成可执行代码。此代码被缓存,以供重复使用,因此一条语句通常仅完全准备一次。后续准备只需要使用语句文本的hash来定位已经缓存的代码。 执行步骤包括执行针对查询生成的代码并返回其结果。在每个步骤的列表中都包含以下指标: 每个步骤所花费的时间。 Globals计数,即为准备或执行SQL语句而引用InterSystems IRIS存储的数量。如需进一步了解全局有关信息,请参阅Orientation Guide for Server-Side Programming(《服务器端编程入门指南》)中的“Introduction to Globals (Globals简介)”一章。 为准备或执行SQL语句而执行的ObjectScript命令的数目。 显示结果的结尾是缓存的查询类(cached query class),这是首次准备语句时生成的缓存代码的ObjectScript类。 3. 也可以使用聚合函数和 GROUP BY。请注意,可以对聚合函数的别名排序: SELECT BrokerID, TO_CHAR(SUM(Quantity * Price), '9,999,999.99') as SubTotal FROM FirstLook.StockTableDemoOne GROUP BY BrokerID ORDER BY SubTotal DESC GO BrokerID SubTotal 3103 868,993.60 1009 808,453.50 5001 593,242.82 5002 187,560.00 4 Rows(s) Affected statement prepare time(s)/globals/cmds/disk: 0.1665s/45832/237712/77ms execute time(s)/globals/cmds/disk: 0.0025s/122/2434/2ms cached query class: %sqlcq.USER.cls9 3. 演示:使用位图索引提高查询性能 如果您正在使用大型数据集,寻找改善查询性能的方法,位图索引是您可以使用的几种方法之一。 如果一个表有一个或多个字段,字段的可能值集合较小,则创建位图索引特别适合。 有关位图索引运行的详细信息,请参阅InterSystems SQL Optimization Guide(《InterSystems SQL优化指南》)的 Bitmap Indices(位图索引)章节。 在本演示中,您将看到在股票交易数据的百万行数据表格中创建目标位图索引引发的变化。您将使用几个简单的 ObjectScript 命令;很容易地从SQL Shell内无缝访问 ObjectScript 类库。 要运行演示: 按照“使用SQL脚本文件创建和填充表格”(Creating and Populating a Table With a SQL Script File)所述,在终端中启动SQL Shell。 创建表: CREATE TABLE FirstLook.StockTableDemoTwo (ClientID INTEGER, BrokerID INTEGER, Symbol VARCHAR(10), TransactionType VARCHAR(4), TransactionDate TIMESTAMP, Quantity INTEGER, Price DECIMAL(15,2), CommissionRate DECIMAL(15,2)) 0 Rows Affected statement prepare time(s)/globals/cmds/disk: 0.0063s/1811/22260/0ms execute time(s)/globals/cmds/disk: 0.2138s/76495/655985/76ms cached query class: %sqlcq.USER.cls1 导入Loader类( Loader.xml文件)。OBJ前缀表示 SQL Shell 按照 ObjectScript 处理以下命令; “c”标志指示InterSystems IRIS编译代码, “k”标志确保源代码存储在活动命名空间(active namespace)中。 OBJ DO $ system.OBJ.Load ("< Path > Loader.xml", "ck") 其中Path是放置文件的位置(请参阅用前须知)。将输出如下结果: Load started on 04/19/2018 15:17:53 Loading file C:\Users\user\repos\FirstLook-SQLBasics\Loader.xml as xml Imported class: FirstLook.Loader Compiling class FirstLook.Loader Compiling routine FirstLook.Loader.1 Load finished successfully. 要将stock_table_demo_two.csv中的数据加载到表中,请在终端中运行以下命令: OBJ WRITE ##class(FirstLook.Loader).LoadStockTableCSV("<Path>stock_table_demo_two.csv") 其中Path是放置文件的位置。此命令的输出结果1000000仅表示已加载100万行。 运行以下查询: SELECT DISTINCT BrokerID FROM FirstLook.StockTableDemoTwo 输出结果显示,可能的经纪人ID的数量非常小,因此该字段是位图索引的好选择。 BrokerID 115 107 101 114 119 104 109 108 20 Rows(s) Affected statement prepare time(s)/globals/cmds/disk: 0.0645s/43430/197693/9ms execute time(s)/globals/cmds/disk: 1.2569s/2000039/9001314/0ms cached query class: %sqlcq.USER.cls10 6. 要在添加位图索引之前查看涉及BrokerID字段的COUNT查询的性能,请运行以下查询: SELECT BrokerID, COUNT(*) As Transactions FROM FirstLook.StockTableDemoTwo GROUP BY BrokerId ORDER BY Transactions DESC BrokerId Transactions 103 50386 118 50304 107 50247 112 50207 101 50174 109 50088 115 50088 104 50048 111 50031 105 50008 113 49996 119 49942 114 49919 116 49894 110 49888 108 49882 102 49843 120 49768 106 49742 117 49545 20 Rows(s) Affected 观察查询返回结果后显示的查询性能统计信息:所用总时间(包括准备和执行时间)约为0.65秒。 statement prepare time(s)/globals/cmds/disk: 0.0695s/45048/225490/13ms execute time(s)/globals/cmds/disk: 0.5878s/1000250/11002218/0ms cached query class: %sqlcq.USER.cls7 7. 在BrokerID上添加位图索引: CREATE BITMAP INDEX BrokerIDIdx ON TABLE FirstLook.StockTableDemoTwo (BrokerID) 0 Rows Affected statement prepare time(s)/globals/cmds/disk: 0.0056s/1723/15958/0ms execute time(s)/globals/cmds/disk: 0.9805s/2071557/18505697/1ms cached query class: %sqlcq.USER.cls11 8. 运行与上述相同的SELECT查询。请注意性能提升:在下面的示例中,查询总共花费了大约0.35秒,减少了近50%。 SELECT BrokerID, COUNT(*) As Transactions FROM FirstLook.StockTableDemoTwo GROUP BY BrokerId ORDER BY Transactions DESC ... statement prepare time(s)/globals/cmds/disk: 0.0573s/45585/231374/0m execute time(s)/globals/cmds/disk: 0.2926s/622/15004397/0ms cached query class: %sqlcq.USER.cls1 4. 了解有关InterSystems SQL的更多信息 要了解有关SQL和InterSystems IRIS的更多信息,请参阅: 4.1 介绍材料 Using InterSystems SQL(使用InterSystems SQL) InterSystems SQL Reference(InterSystems SQL参考书目) InterSystems SQL Overview(InterSystems SQL概述) 4.2 SQL开发 SQL –Things You Should Know (SQL-您应该知道的事情) Developing with InterSystems Objects and SQL(使用InterSystems Objects和SQL开发) 4.3 查询优化 First Look: Optimizing SQL Performance with InterSystems IRIS(技术概要:使用InterSystems IRIS优化SQL性能) InterSystems SQL Optimization Guide(InterSystems SQL优化指南) Academy – Optimizing SQL Performance(学院派–优化SQL性能) Optimizing SQL Queries(优化SQL查询) 4.4 分片和可扩展性 First Look: Scaling for Data Volume with Sharding(技术概要:带分片的数据卷扩展) Scalability Guide(可扩展性指南) 4.5 SQL Search SQL Search First Look: SQL Search with InterSystems IRIS(技术概要:使用InterSystems IRIS进行) Using InterSystems SQL Search(使用InterSystems SQL Search) Creating iFind Indices for Searching Text Fields(创建用于搜索文本字段的iFind索引) 4.6 JDBC First Look: JDBC and InterSystems IRIS(技术概要:JDBC和InterSystems IRIS) Using Java JDBC with InterSystems IRIS (documentation)(使用InterSystems IRIS进行Java JDBC <文档>) Java Overview(Java概述) Using JDBC with InterSystems IRIS (online learning)(在InterSystems IRIS中使用JDBC <在线学习>)
文章
Lele Yang · 二月 18, 2022

FAQ 常见问题系列--系统管理篇 InterSystems产品的内存使用

InterSystems的产品包括Caché/Ensemble/Health Connect/IRIS/IRIS for Health,均基于进程,当它们及在它们之上开发的应用运行时,您能在操作系统上看到大量cache/irisdb进程。下面以InterSystems IRIS为例,来说明下InterSystems产品的内存使用。 InterSystems IRIS进程的内存使用主要有以下两大类, 第一类,进程私有内存。 私有内存只由该进程使用,且会为每个进程单独分配。进程初始时会被分配128KB的内存空间,随着进程运行根据需要,这个内存空间会自动扩展。InterSystems IRIS对于进程内存使用的限制是Maximum Per-Process Memory, 该参数的设置位置在系统管理门户SMP,System > Configuration > Memory and Startup,允许的取值范围是256KB到2147483647KB(2TB)。如果系统遇到<STORE>错误,那么可以尝试增加该数值,来解决进程运行时无法申请到更多内存的问题。从InterSystems IRIS开始,我们推荐将该值设置为-1, 也就是取上限2TB。 更多InterSystems IRIS进程内存使用可参见如下在线文档"Process Memory in InterSystems Products",https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls?KEY=AVMEM 第二类,共享内存。共享内存是一个在进程之间共享的内存区域,因此内存中只有一个实体。 InterSystems中的共享内存包括如下,1. Database Cache, 也就是我们常说的Global Buffer,设置位置在SMP,System > Configuration > Memory and Startup。 2. Routine Cache, 也就是Routine Buffer,设置位置同上。3. gmheap,设置位置在SMP,System > Configuration > Advanced Memory Settings。我们通常所说的Process Table和Lock Table占用的内存也是从这部分内存中划分出来的,如果遇到Lock Table Full的问题,需要增加locksiz大小,请注意同步调大gmheap。 InterSystems IRIS在实例启动时,会首先尝试为这部分共享内存分配Huge Page/Large Page,以获得最佳性能实践,如果分配成功,您可以在日志文件messages.log中看到如下类似内容, 11/28/21-21:00:09:081 (41752) 0 [Generic.Event] Allocated 35046MB shared memory (large pages): 31000MB global buffers, 1024MB routine buffers 另外,除以上两大类之外,还有一类特殊的内存使用, 1.长字符串内存使用InterSystems IRIS默认启用长字符串,最多支持3,641,144个字符,当进程使用长字符串时,为其分配的内存直接来自于操作系统的malloc() buffer,它不占用进程的私有内存空间,因此为字符串实际分配的内存不受限于Maximum Per-Process Memory。 综上,InterSystems IRIS所使用的内存总量是所有InterSystems IRIS进程使用的内存之和,也就等于,(进程私有内存 * 进程数) + Global Buffer + Routine Buffer + gmheap + 长字符串总体使用内存。
公告
Michael Lei · 九月 29, 2021

新一轮InterSystems开发者竞赛开始啦: 互操作性大赛

亲爱的社区开发者们,大家好! 欢迎积极参与新一轮InterSystems系联开发者竞赛! 🏆 InterSystems 互操作性大赛 🏆 时间: 2021年10月4日--24日 总奖金池高达 9,450美金! 奖项设置 1. 专家提名奖(Experts Nomination) - 获奖者由我们特别挑选的专家团选出: 🥇 第1名 - $4,000 🥈 第2名 - $2,000 🥉 第3名 - $1,000 🌟 新设奖项: 第4到第10名 - $100 2. 社区提名奖(Community Nomination) -获得总投票数最多的应用: 🥇 第1名 - $1,000 🥈 第2名 - $500 🥉 第3名 - $250 如果同时多位参赛者获得同样的票数,均被视为优胜者,将平分奖金 谁可以参加? 任何开发者社区的成员均可参加,InterSystems内部员工除外(InterSystems contractor员工可以参加)。还没有账号?现在来建一个! 👥 开发者可以组团 创建一个协作应用程序,组团限定人数为2-5人。 请注意,要在您的README文件中标注您的团队成员——社区用户profile 参赛时间安排 🛠 10月 4日-17日: 应用开发、提交阶段 ✅ 10月 18日 - 24日: 投票阶段 注意:在整个参赛期间(开发与投票期间,即10月4日-10月24日),开发者可持续编辑、完善其应用程序 主题 💡 InterSystems IRIS 与 IRIS 医疗版互操作性解决方案 💡 基于InterSystems IRIS 或 InterSystems IRIS 医疗版开发一个互操作性解决方案或者能够帮助开发或维护互操作性的方案; 参赛须知: 有效应用程序:100%全新的Open Exchange Apps或已有的应用程序(但有显著提升)。所有参赛者/团队提交的应用程序只有经过我们团队的审核之后才会被批准参赛。 该应用应该在 IRIS Community Edition or IRIS for Health Community Edition or IRIS Advanced Analytics Community Edition 上工作。 该应用需开源并在GitHub上发布。 该应用的README文件应为英文,包含安装步骤,并包含视频demo或/和应用程序如何运行的描述。 技术资源 1. IRIS初学者: Build a Server-Side Application with InterSystems IRIS Learning Path for beginners 2. 应用样例: Ensemble/互操作性构成 IRIS-互操作性-模版 ETL-互操作性-适配器 InterSystems IRIS医疗版互操作性Demo ENSDEMO HL7 和 SMS 互操作性 Demo 医疗行业 HL7 XML RabbitMQ 适配器 基于Kafka的产品扩展 demo 3. 在线课程和视频: 企业中的互操作性 互操作性快速入门指南 互操作性资源 - 2019 智慧的互操作性 医疗互操作性概览 4. 如何将您的APP提交给大赛 如何在InterSystems Open Exchange上发布应用程序 如何把参赛APP提交给大赛 参赛评比 投票规则即将发布,敬请期待! 各就位,预备,跑! 期待您的精彩提交!加入我们的编程马拉松,赢取大奖 ❗️ 点击此处,查看 官方竞赛条款解读❗️
文章
jieliang liu · 六月 30, 2021

如何在InterSystems开发者社区学习?第一部分:玩转“关注”

嗨,开发者们! 在这篇文章中,我们想告诉你如何充分利用开发者社区,从InterSystems的技术专家那里学到尽可能多的东西! 请注意这些步骤,以成为我们社区的高级用户! 关注你感兴趣的社区成员 如果你喜欢他们发布的内容,你可以关注社区的任何成员。只需点击任何成员右侧边栏上的 "关注 "按钮,当该成员在社区上发表文章(文章/问题/公告等)时,你将收到电子邮件通知。 此外,在主页的顶部菜单中,你可以点击 "成员",搜索特定的人或有更多意见的成员,或更多的喜欢......并开始关注他们。 关注你感兴趣的标签 用于描述社区上的帖子的所有标签都可以在DC主页上的 "标签 "部分找到: 在DC标签树中, 您可以找到您感兴趣的主题并关注相关的 标签。只需选择一个标签并点击其旁边的 "关注 "按钮即可。当您关注任何标签时,您会收到一封包含所有使用该标签的帖子的电子邮件。 我们建议从以下标签开始: 最佳实践 | 技巧和窍门 | 初学者 | 教程 关注你所感兴趣的帖子 关注一个帖子,你将收到(通过电子邮件)该帖子的所有更新,如新的评论,或如果发表了第二部分,或任何其他与你关注的帖子有关的活动。 要关注一个帖子,你只需要点击每个帖子下面的铃铛图标。 -> 我如何知道我在关注哪些会员、标签和帖子? 要知道你所关注的会员、标签和帖子,你只需要进入你的账户,在右上角 然后进入左栏的 "订阅"。 在这个页面的底部,你可以在三个标签中看到并定制你的订阅--每个标签都显示你所关注的成员、标签和帖子。例如,下面的截图显示,用户正在关注一些标签和DC成员。 注意: 如果你想关注不同语言的会员或标签,你需要将你的订阅设置切换到你感兴趣的语言。 添加帖子到你的书 把你喜欢的帖子加入书签,这样你以后就可以快速而方便地访问该帖子。 如果你喜欢一个帖子(文章、问题或公告)并想把它保存起来,你可以把它添加到你的书签中。这样,你就可以快速和容易地访问该帖子,并在你想要时阅读它。 要将一个帖子添加到你的书签,你只需要点击每个帖子下面的星星图标。 要查看您的所有书签,请进入您的账户,然后在左栏中进入 "书签"。 所以,开发者们! 请使用我们所有的DC功能,这些功能可以帮助你成为InterSystems技术的专家! 而且非常欢迎你在下面的评论中提交关于如何在开发者社区学习InterSystems技术的其他方法和建议。
公告
Weiwei Gu · 九月 14, 2023

来认识 2023 年 8 月的InterSystems Global Masters获奖者!

是时候宣布八月份的获奖者了!请欢迎我们出色的Global Masters英雄! 热烈的掌声归于这些开发者以及他们在 8 月份为我们全球开发者社区做出的巨大贡献: 🥇@Sylvain.Guilbaud🥈@Ashok.Kumar 🥉 @罗伯特·森珀 请在下面了解有关比赛和我们的优秀获奖者的更多信息。 关于@Sylvain.Guilbaud 🔁 5 篇关于 DC 的文章翻译 📝 DC 上有 35 条评论 🎓 2 个已接受的答案 🛠 11 个Open Exchange pull请求 🏅 对 DC 上的帖子投 100 票即可获得专家作者徽章 🏅 DC 上 15 篇翻译文章获得铜译者徽章 🏅 Open Exchange 应用程序 1 个拉取请求的拉取请求贡献者徽章 🏅 在 Open Exchange 上获得 25 条评论,获得银牌 Open Exchange 审阅者徽章 恭喜,Sylvain! 经验: 自2001 年InterSystems France在法国地区开设办事处以来,Sylvain 一直担任该公司的售前工程师。作为数据库管理系统的专业工程师, Sylvain 自 1993 年以来一直参与多个软件编辑器的应用程序开发,涉及医疗领域或医疗保健最终用户,特别是在 APHP 总部。为了完善他在数据存储方面的专业知识,他随后加入了编辑器 Oracle,然后于 2001 年 6 月加入 InterSystems。因此,由于 InterSystems 的增强,他在数据处理方面的技能得到了扩展,达到了令人难以置信的速度。 其他情况: 出生于大西洋附近的南特,但很小的时候就被收养感受到了地中海的气息。文化爱好者,对音乐(只要有机会就弹钢琴)以及其他艺术和文学充满热情,尤其是从哲学角度来看,他绝对热爱世界的自然和狂野的一面。多萝西·奥柏林格 ( Dorothee OBERLINGER) 、吉米·亨德里克斯 (Jimi HENDRIX )、扮演瓦伦丁·西尔维斯特罗夫(Valentin SILVESTROV)的海伦·格里莫(Hélène GRIMAUD)、 《黑色安息日》 、奥菲莉·盖拉德、 《王肫与蜥蜴巫师》中的希拉怪物、刘小龙、泰姬陵、《鱼骨中的异果》 、埃曼纽尔·哈伊姆、乌鲁鲁岩来自Earthless的Alain PLANÈS 、来自Mulatu Astatke的Yèkèrmo Sèw 、 Dave van Ronk 、 Tom WAITS 、 Michel PETRUCCIANI或有史以来听过的最美丽的音乐之一,等等。 🔗立即与 Sylvain 联络,拓展您的技术人脉网络: 领英 开发者社区 关于@Ashok.Kumar 📝 DC 上有 4 个帖子和 21 条评论 🎓 8 个已接受的答案 💻 Open Exchange 上的 3 个应用程序 🏅在 Open Exchange 上发表 10 条评论即可获得铜牌 Open Exchange 审阅者徽章 🏅 DC 上接受 5 个答案即可获得答案大师徽章 🏅 DC 上 1 个问题即可获得 InterSystems 研究员徽章 🏅 DC 上 1 条评论可获得 DC 评论者徽章 🏅 1 篇 DC 文章的 DC 作者徽章 🏅 InterSystems Open Exchange 开发人员在 Open Exchange 上开发 1 个应用程序 恭喜,Ashok! 您从事这个职业/行业多久了? “我在系统间产品领域担任软件工程师已超过 9 年。我的职业生涯始于缓存开发人员。” 您的主要专业领域是什么? “HL7/FHIR 集成在分析、设计、实施和维护应用程序方面拥有丰富的经验。” 你从哪来? “我在印度出生和长大” 🔗立即与 Ashok 联系以拓展您的技术人脉网络: 开发者社区 关于@罗伯特·森珀 📝 DC 上有 5 个帖子和 41 条评论 🎓 11 个已接受的答案 💻 5 个 OEX 应用程序 🛠 11 个开放交换请求 恭喜,罗伯特! Robert C. Cemper是达姆施塔特 InterSystems 的前高级售前工程师。他在这个行业已经有 45 年的经验,并且直接在 InterSystems 工作了超过 12 年。个人使命宣言:“对于工程师来说‘不可能’并不存在” 在这篇文章中阅读完整且鼓舞人心的罗伯特的简历。 🔗 立即在开发者社区与 Robert 联系,以拓展您的技术人脉网络。 感谢所有获奖者对 InterSystems 开发者社区不断做出的巨大贡献! 让我们在下面的评论中祝贺我们的英雄! 关于全球大师倡导者中心的本月全球大师Global masters竞赛:我们每个月都会提名通过高度参与全球大师和开发者社区而付出额外努力的倡导者。获胜者将获得 1000 积分和特殊徽章。我们还为获奖者提供发布他们的简历的机会——现在在开发者社区的文章中!
公告
Claire Zheng · 八月 26, 2022

InterSystems开发者社区令人惊喜的里程碑!10K...11K...5M...

社区开发者们,大家好! 我们很自豪地宣布我们的InterSystems开发者社区已经达到了几个令人惊喜的里程碑: 📝 10,000 帖子 👥 11,000 注册用户 👁 5,000,000 浏览量 亲爱的开发者成员们,感谢你们的贡献,我们才能达成这样的目标:11K会员、10K发帖、5M浏览量 🍋🍋🍋🍋🍋 !我们为这一成就感到自豪,衷心感谢创造这一切的你们! 我们要感谢你们每一个人,因为你们是我们志同道合的一员!感谢你的每一次提问和对话!感谢你的每一次知识分享!感谢你的中肯建议,推动我们思考,从而变得更好、更有用!每一个你,都让这个社区保持活力和繁荣的原动力!我们很高兴与你在一起!❤️ 以下消息让这篇帖子的基调更欢乐! 开发者社区Discord channel 已经有500成员了! 🎉在这个方向上,我们还有很多工作要做,但我们已经准备好迎接挑战了。我们希望你也能加入我们,获得更多有用的信息和想法. 点击加入 再次感谢!让我们一起继续前行,共同成长!
文章
Meng Cao · 五月 10, 2023

InterSystems IRIS for Health 2023.1配置MIRROR VIP报错的问题

今天从官网下载了IRISHealth-2023.1.0.229.0-lnxrh9x64版本的数据库安装包,在RHEL9.0上进行安装配置测试,遇到一个问题,趁热记录下来。 测试环境及软件版本: 操作系统——Red Hat Enterprise Linux release 9.0 (Plow) 数据库——IRISHealth-2023.1.0.229.0-lnxrh9x64 测试创建镜像时,配置好虚拟IP,点击保存。 保存后发现数据库没有变成主成员状态,一直是等待的状态,如下图所示: 这时查看控制台日志发现有大量报错,如下图所示: 从控制台日志看出,此时矛头指向了virtualIP.sh,经过查找发现这个脚本位置在安装目录下的bin目录中。 这里只是创建了MIRROR的配置,然后出现了问题,大概可以猜到可能是添加VIP的方法有什么问题,开启脚本的DEBUG,测试运行添加VIP的方法。 果然,发现了一处报错,如下图所示: 打开脚本文件,查看第588行代码。 研究发现RHEL9.0中,ID=`id | grep uid= | awk -F"=" '{print $2}' | awk -F"(" '{print $1}'`,$ID返回是空,不是数字,所以报错了,修改脚本,注释掉其中六行代码,并关闭DEBUG,如下: 保存脚本后,再次执行添加IP方法测试,IP可以正常添加。PS:不要忘记把测试添加的IP移除掉。 重启数据库,发现MIRROR状态恢复正常。 大家是否有遇到这个问题,可在评论区交流~~~
文章
Jingwei Wang · 九月 16, 2022

Python应用程序连接到InterSystemsIRIS数据库 - 使用 pyodbc

此篇文章给大家介绍一个使用pyodbc连接到 InterSystems IRIS数据库的示例,详情如下: InterSystems IRIS 安装在Redhat 操作系统中,使用pyodbc在Mac操作系统中连接到Redhat 操作系统中InterSystems IRIS数据库。 下载测试代码 使用vscode打开测试代码,并在Solutions文件夹下安装pyodbc pip install pyodbc 在Mac操作系统中安装ODBC驱动 brew update brew install unixodbc 安装后,查看Mac操作系统中的odbcinst.ini文件,此时odbcinst.ini文件应该是空的。 Mac操作系统中/usr/local/bin下使用下列命令注册驱动 或者 配置DSN 注册ODBC驱动 odbcinst -i -d -f pyodbc_wheel/mac/odbcinst.ini 配置本地DSN pyodbc_wheel/mac/odbcinst.iniodbcinst -i -s -h -f odbc.ini_unixODBCtemplate 配置系统DSN odbcinst -i -s -l -f pyodbc_wheel/mac/odbcinst.ini 执行后,查看Mac操作系统中的odbcinst.ini文件,此时odbcinst.ini文件应该是空的, 安装如下信息更改odbcinst.ini文件。 [InterSystems ODBC] Description=InterSystems ODBC Driver=pyodbc_wheel/mac/libirisodbc35.so Setup=pyodbc_wheel/mac/libirisodbc35.so UsageCount=1 将connection.config连接配置文件里面的内容改成Redhat 操作系统中InterSystems IRIS的连接信息。 ip: 192.168.157.XX port: 51773 namespace: USER username: user password: pwd 运行pyodbcplaystocksTask1.py 文件。会显示“Connected to InterSystems IRIS”,表示成功连接到InterSystems IRIS 。
公告
Michael Lei · 四月 15, 2021

在VS Code中使用ObjectScript 开发培训视频上线

开发者们现在可以下载一套InterSystems ObjectScript扩展插件,并开始使用微软的Visual Studio Code IDE编写应用程序。我们培训部门的新VS Code资源指南提供了大量开发人员入门需要的内容,包括: 连接到InterSystems实例:安装和使用VS Code的ObjectScript扩展VS Code开发应用程序文档:使用开源社区。 播客集: 在VS代码中编写ObjectScript (20m) 开发者社区文章。如何报告问题 Github Repository。InterSystems语言服务器 Github Repository。InterSystems服务器管理器 Github Repository。VS代码的InterSystems ObjectScript扩展 了解IDE。 微软文档。Visual Studio代码 - 入门 微软视频。Visual Studio代码入门 (5m) 更多详情欢迎访问:https://learning.intersystems.com/course/view.php?id=1678&ssoPass=1
文章
Claire Zheng · 十一月 8, 2021

2021全球线上峰会划重点:计算的目的是洞察力,而不是数字

InterSystems 2021全球线上峰会精彩内容梳理:两个重磅论坛集中探讨Analytics(分析)的奥义,InterSystems数据平台与医疗行业的愿景分享!
公告
Claire Zheng · 六月 14, 2023

【视频】详细了解TrakCare 创新工具包( Innovation Toolkit)

Hi 开发者们, 欢迎观看视频,以了解 InterSystems TrakCare 创新工具包( Innovation Toolkit),该工具包可免费下载,使 TrakCare 用户能够快速访问标准 HL7® FHIR® 格式的数据,使记录系统成为转型系统: ⏯ TrakCare 创新工具包介绍 @ 2022 年全球峰会 🗣主持人:Eslam Farahat,InterSystems 产品经理 订阅InterSystems B站!
问题
j ay · 三月 22, 2023

如何使用java连接cache2016数据库

1、java如何连接cache2016数据库 2、java如何调用cache的函数 "Backup.General", "ExternalFreeze", Using the JDBC Driver | Using Java with InterSystems Software | InterSystems IRIS for Health 2023.1请参阅这个文档来使用jdbc 链接cache 数据库, Native SDK for Java | InterSystems IRIS for Health 2023.1 如果要调用任何的 cache 服务器端的代码,可以使用Native SDK for Java 使用方法请参阅上面的文档