如何在Ensemble中对字段类型为GlobalCharacterStream进行字符串搜索?String的可以搜索,但是Stream类型的就不行。
第十三章 手动创建 REST 服务(一)
本附录描述了如何通过继承 %CSP.REST 类来手动创建 REST 服务;此过程创建了一个手动编码的 REST 服务,它不能与所有 API 管理工具一起使用。
手动创建 REST 服务的基础知识
要手动定义 REST 服务,请执行以下操作:
- 创建一个
REST服务类 —%CSP.REST的子类。在子类中:- 定义一个
URL映射,该映射指定为REST URL和HTTP方法执行的IRIS方法。 - 可以选择指定
UseSession参数。此参数控制每个REST调用是在其自己的Web会话下执行还是与其他REST调用共享一个会话。 - (可选)覆盖错误处理方法。
- 定义一个
如果想将实现代码与调度代码分开,可以在单独的类中定义实现 REST 服务的方法,并从 URL 映射中调用这些方法。
- 定义一个使用
REST服务类作为其调度类的Web应用程序。
要定义 Web 应用程序及其安全性,请转至 Web 应用程序页面(单击System Administration > Security > Applications > Web Applications)。
定义 Web 应用程序时,将 Dispatch Class 设置为 REST 服务类的名称。
此外,将应用程序的名称指定为 REST 调用的 URL 的第一部分。
近日遇到客户反映在Business Operation中使用SQL Outbound Adapter调用Oracle存储过程时,无法获取CLOB完整的返回内容。借此在这里介绍下该如何调用,话不多说,直接上代码。
注意,以下代码片段直接应用于Business Operation中,
set pIn = 4
set pIn(1) = "aaaa"
set pIn(1,"IOType") = 1 // 1:input , 4:output
set pIn(1,"SqlType") = 12 // 12: varchar
set pIn(2,"IOType") = 4
set pIn(2,"SqlType") = 4 // 4: integer
set pIn(3,"IOType") = 4
set pIn(3,"SqlType") = 12
set pIn(4,"IOType") = 4
set pIn(4,"SqlType") = 2005 // CLOB
set pIn(4,"LOB") = 1
set tQuery = "{ call test_hc(?,?,?,?第十二章 使用中的 OpenAPI 属性
本附录列出了 API 管理工具在生成 REST 服务类时使用的 OpenAPI 2.0 规范的属性。此处未列出的属性将被忽略。有几个扩展属性;它们的名称以 x-ISC 开头。
Swagger
-
basePath -
consumes -
host -
produces -
definitions(请注意,API管理工具在生成代码时不使用Schema对象的任何属性) -
parameters(for details, see “Parameter Object”) -
paths(for details, see “Path Item Object”) -
info(for details, see “Info Object”) -
swagger(must be "2.0")
有关这些属性的详细信息,请参阅 https://github.com/OAI/OpenAPI-Specification/blob/master/versions/2.0.md#swagger-object。
在这篇文章中,我试图找出多个领域来开发我们能够使用python和机器学习的功能。
每家医院都在努力利用技术和服务来提高其服务质量和效率。
医疗保健部门是一个非常大的、可供选择的服务领域,而python是做机器学习的最好技术之一。
在每个医院里,人们都会有一些感觉,如果这种感觉能够被计算机理解,使用技术就有机会提供更好的服务。
在这里,我们可以把这两者结合起来,在医疗部门,我正试图理解/识别各种选择,以提供更好的服务。
首先,我们可以尝试使用python的机器学习来识别人并了解他们目前的感受。比如,在医院信息系统中,每个病人至少有一张照片,使用该照片我们可以识别病人,然后一旦病人到达医院,使用视频监控和机器学习技术需要识别这个人的感觉。
在医院设施中会看到多种类型的感觉。
1)紧张
2)平静和冷静
3) 哭泣
4) 暴力的病人/亲属
5) 生病的病人
6) 高烧鉴定
像上面的情况,我们可以看到多种不同的类型。
如果一个已经登记的病人发高烧,那么使用闭路电视识别这个病人的情况,并捕捉温度热像仪,护理人员可以给予更好的支持,这在接待服务领域是非常大的区别。
如果这个发高烧的人已经是一个登记的病人,如果利用现有的照片识别这个病人,那么我们可以做多件事情。
1)如果该病人今天有预约,我们可以自动到达该病人处。
第十一章 /api/mgmnt/ API 参考
此参考列出了 /api/mgmnt/ 服务中的端点,所有这些端点都适用于较新的 REST 服务。下表总结了端点并指出它们是否也适用于手动编码的 REST 服务。
| Endpoint | Summary | Applies to NEWER REST Services? | Applies to Manually-Coded REST Services? |
|---|---|---|---|
| DELETE /api/mgmnt/v2/:ns/:app | 删除 REST 服务 |
YES | no |
| GET /api/mgmnt/ | 列出此服务器上启用 REST 的 Web 应用程序 |
YES | YES |
| GET /api/mgmnt/v1/:ns/restapps | 列出命名空间中启用 REST 的 Web 应用程序 |
YES | YES |
| GET /api/mgmnt/v1/:ns/spec/:app | 返回 REST 服务的 OpenAPI 2. |
什么时候使用索引
索引提供了一种机制,通过维护常用数据的分类子集来优化查询。确定哪些字段应该被编入索引需要一些思考:太少或错误的索引,关键查询会运行得太慢;太多的索引会减慢INSERT和UPDATE的性能(因为索引值必须被设置或更新)。
索引什么
为了确定添加索引是否能提高查询性能,从管理门户的SQL界面运行查询,并在Performance中注意 global引用的数量。添加索引,然后重新运行查询,注意 global引用的数量。一个有用的索引应该减少 global引用的数量。你可以通过使用%NOINDEX关键字作为WHERE子句或ON子句条件的前言来阻止索引的使用。
你应该对JOIN中指定的字段(属性)进行索引。例如,LEFT OUTER JOIN从左表开始,然后查看右表,因此,你应该对右表的字段进行索引。在下面的例子中,你应该为T2.f2编制索引。一个INNER JOIN应该在两个ON子句字段上都有索引。
FROM Table1 AS T1 LEFT OUTER JOIN Table2 AS T2 ON T1.f1 = T2.f2如果查询计划中的第一个项目是 "read master map",或者查询计划调用的模块的第一个项目是 "read master map",那么查询的第一个map就是master map而不是索引map。
第十章 发现和记录 REST API
本章讨论如何发现实例上可用的 REST 服务以及如何为 REST 服务生成文档。
使用 /api/mgmnt 服务发现 REST 服务
/api/mgmnt 服务包括可用于发现 REST 服务类和启用 REST 的 Web 应用程序的调用。
发现 REST 服务
要使用 /api/mgmnt 服务来发现实例上可用的 REST 服务,请使用以下 REST 调用:
- 对于
HTTP操作,选择或指定GET。 - 对于
URL,请指定以下形式的URL:
http://localhost:52773/api/mgmnt/v2/
或者,如果只想检查一个命名空间:
http://localhost:52773/api/mgmnt/v2/:namespace
其中 localhost 是服务器的名称,52773 是运行 IRIS 的 Web 服务器端口,命名空间是要检查的命名空间。
(请注意,这些调用会忽略手动编码的 REST 服务。要发现手动编码的 REST 应用程序,请使用调用 GET /api/mgmnt/ 和 GET /api/mgmnt/:v1/:namespace/restapps。)
如果调用成功,IRIS 以 JSON 格式返回一个列出 REST 服务的数组。例如:
[
{
"name": "%Api.Mgmnt.应用集成平台市场上产品众多,商家专家观点纷纭,莫衷一是。Gartner公司从用户角度出发,搭建了Peer Insight “大众点评”平台,让用户能够为自己使用的产品发声,对各个产品打分。以下是来自用户的声音,供参考。
第一款产品是微软的BizTalk,综合得分3.9。
第二款产品是InterSystems的Ensemble,综合得分4.6。
第三款产品是IBM的WebSphere Enterprise Service Bus,综合得分3.8。
BizTalkby MicroSoft |
Ensembleby InterSystems |
WebSphereEnterprise Services Bus by IBM |
|
总体评价:57%的用户愿意推荐该产品 |
总体评价:88%的用户愿意推荐该产品 |
总体评价:55%的用户愿意推荐该产品 |
![]() |
![]() |
|
|
分项评分 |
分项评分 | 分项评分 |
综合能力得分![]() |
综合能力得分![]() |
综合能力得分![]() |
评估与签约 3.3 定价灵活性
4.0 理解需求的能力 |
评估与签约 4.2 定价灵活性
4.6 理解需求的能力 |
评估与签约 3.5 定价灵活性
4.0 理解需求的能力 |
集成与部署 3.4 部署便利性3. |
InterSystems SQL支持在InterSystems IRIS数据平台数据库中将流数据存储为BLOB(Binary Large Objects 二进制大对象)或CLOB(Character Large Objects字符大对象)的能力。
InterSystems SQL支持两种流字段:
- 字符流:用于大量的文本。
- 二进制流:用于图像、音频或视频。
BLOBs和CLOBs可以存储多达4GB的数据(JDBC和ODBC规范规定的限制)。除了在通过ODBC或JDBC客户端访问时如何处理字符编码转换(如Unicode到多字节)外,BLOB和CLOB的操作在各方面都是相同的:BLOB中的数据被视为二进制数据,决不转换为其他编码,而CLOB中的数据被视为字符数据,在必要时进行转换。
如果一个二进制流文件(BLOB)包含单一的非打印字符$CHAR(0),它被认为是一个空的二进制流。它相当于""空二进制流值:它存在(不是空的),但长度为0。
从对象的角度来看,BLOB和CLOBs被表示为流对象。更多信息请参见定义和使用类中的 "与流合作 "一章。
定义流数据字段
InterSystems SQL支持流字段的各种数据类型名称。这些InterSystems的数据类型名称是对应于以下的同义词。
- 字符流:数据类型LONGVARCHAR,映射到%Stream.
定义 Stored Procedures
可以使用以下方式定义stored procedures
- 使用DDL定义存储过程
- 使用类方法定义存储过程
使用DDL定义存储过程
CREATE PROCEDURE 可以创建一个查询,它总是作为一个存储过程被预测。一个查询可以返回一个单一的结果集。
CREATE PROCEDURE AgeQuerySP(IN topnum INT 10, IN minage INT 20)
BEGIN
SELECT TOP :topnum Name, Age FROM Sample.Person
WHERE Age > :minage;
END列表中的每个参数声明包括(按顺序)。指定参数模式是IN(输入值),OUT(输出值),还是INOUT(修改值)。如果省略,默认的参数模式是IN,参数名称是区分大小写的。
CREATE QUERY 可以创建一个可以选择作为存储过程投射的查询。一个查询可以返回一个单一的结果集,这个查询可能是也可能不是作为存储过程公开的。要创建一个作为存储过程公开的查询,你必须指定PROCEDURE关键字作为其特征之一。你也可以使用CREATE PROCEDURE语句来创建一个作为存储过程公开的查询。
为了创建一个查询,你必须拥有%CREATE_QUERY管理权限,正如GRANT命令所指定的那样。
第九章 REST 服务安全
如果 REST 服务正在访问机密数据,应该对服务使用身份验证。如果需要为不同的用户提供不同级别的访问权限,还要指定端点所需的权限。
为 REST 服务设置身份验证
可以对 IRIS REST 服务使用以下任何形式的身份验证:
HTTP身份验证标头 — 这是REST服务的推荐身份验证形式。Web会话身份验证 — 其中用户名和密码在 URL 中的问号后面指定。OAuth 2.0身份验证 - 请参阅以下小节。
REST 应用程序和 OAuth 2.0
要通过 OAuth 2.0 对 REST 应用程序进行身份验证,请执行以下所有操作:
- 将包含
REST应用程序的资源服务器配置为OAuth 2.0资源服务器。 - 允许对
%Service.CSP进行委派身份验证。 - 确保将
Web应用程序(用于REST应用程序)配置为使用委托身份验证。 - 在
%SYS命名空间中创建一个名为ZAUTHENTICATE的例程。 提供了一个示例例程REST.ZAUTHENTICATE.mac,可以复制和修改它。此例程是 GitHub (https://github.com/intersystems/Samples-Security) 上 Samples-Security 示例的一部分。
第七章 在 REST 服务中支持 CORS
概述
本节提供 CORS 的概述以及如何在 IRIS REST 服务中启用 CORS 的概述。
CORS 简介
跨域资源共享 (CORS) 允许在另一个域中运行的脚本访问服务。
通常,当浏览器从一个域运行脚本时,它允许对同一个域进行 XMLHttpRequest 调用,但在对另一个域进行调用时不允许它们。此浏览器行为限制某人创建可滥用机密数据的恶意脚本。恶意脚本可能允许用户使用授予用户的权限访问另一个域中的信息,但随后在用户不知道的情况下,将机密信息用于其他用途。为了避免这种安全问题,浏览器一般不允许这种跨域调用。
在不使用跨域资源共享 (CORS) 的情况下,具有访问 REST 服务的脚本的网页通常必须与提供 REST 服务的服务器位于同一域中。在某些环境中,将带有脚本的网页与提供 REST 服务的服务器放在不同的域中是很有用的。 CORS 支持这种安排。
下面提供了浏览器如何使用 CORS 处理 XMLHttpRequest 的简化描述:
- 域
DomOne中的网页中的脚本包含对DomTwo域中的IRIS REST服务的XMLHttpRequest。XMLHttpRequest具有CORS的自定义标头。 - 用户查看此网页并运行脚本。用户的浏览器检测到与包含网页的域不同的域的
XMLHttpRequest。
本章介绍了使用InterSystems IRIS作为企业服务总线,描述了InterSystems IRIS ESB架构,并提供了部署ESB的概述。
企业服务总线的概念
企业服务总线(ESB)提供了一个单点来访问和管理具有SOAP、REST或其他网络API的应用程序。ESB提供了以下功能。
- 提供一个中心来发现和访问服务。
- 将应用程序与服务隔离开来,允许你在一个地方改变服务的描述,而不需要更新所有依赖它的应用程序。例如,你可以改变服务器的地址,甚至服务的API,并在ESB中处理这些变化。这为你的应用程序提供了协议独立性。如果一个应用程序是使用SOAP API开发的,但一个新的服务用REST API提供了额外的功能,ESB可以使新的REST服务作为REST和SOAP API可用,允许你添加新服务的功能,同时保持对现有应用程序的兼容性。
- 提供一种机制来组织和跟踪企业使用的应用程序以及这些应用程序之间的依赖关系。。
ESB架构
InterSystems IRIS ESB架构有以下组成部分。
- 将传入的请求与服务器连接起来的路由机制。这是由具有专门业务服务(BS)和业务操作(BO)的 production实现的,也可以选择业务流程(BP)。
Hi 大家好!
我们很荣幸地宣布InterSystems 将在剑桥总部举办 推动女性健康-FemTech不止是利基市场 高层论坛,论坛将在线上线下同步举行!
⏱ 时间: 7月 29日, 5:30 AM – 7:30 AM ,北京时间(July 28,5:30 PM – 7:30 PM ,EDT/美国东部时间)
📍 地点: InterSystems 总部,1 Memorial Drive, Cambridge, MA
第六章 修改规范(SPEC)类
概述
下表列出了修改规范类的原因并简要总结了所需的更改:
| 原因 | 改变 |
|---|---|
| 更新或替换规范 | 手动修改 OpenAPI XData 块或通过重新生成规范类。 |
启用 REST 服务以支持 CORS |
手动修改 OpenAPI XData 块;还添加一个类参数并创建一个自定义调度超类。 |
启用 REST 服务以支持 Web 会话 |
添加类参数。 |
| 指定使用端点所需的权限 | 手动修改 OpenAPI XData 块。 |
| 覆盖默认内容类型、响应字符集或输入流处理 | 添加类参数。 |
| 为服务方法指定一个非默认名称 | 手动修改 OpenAPI XData 块。 |
无论何时编译规范类,编译器都会在同一个包中重新生成调度类并更新实现类。
覆盖内容类型、响应字符集或输入流处理
只需将类参数添加到规范类并重新编译,就可以覆盖 REST 服务的几个关键方面。
- 默认情况下,
REST服务需要application/json内容类型。要覆盖它,请将以下内容添加到规范类:
Parameter CONTENTTYPE = "some-content-type";
其中 some-content-type 是 MIME 内容类型。
- 默认情况下,
REST服务的响应消息采用UTF-8格式。
第五章 修改实现(IMPL)类
本章讨论如何修改 REST 服务的实现类。
初始方法定义
实现类最初包含存根方法,如下例所示:
/// Returns all pets from the system that the user has access to<br/>
/// The method arguments hold values for:<br/>
/// tags, tags to filter by<br/>
/// limit, maximum number of results to return<br/>
ClassMethod findPets(tags As %ListOfDataTypes(ELEMENTTYPE="%String"), limit As %Integer) As %Stream.Object
{
//(Place business logic here)
//Do .第四章 使用 %REST.API 类创建 REST 服务
本章介绍如何使用 %REST.API 类来创建、更新和删除 REST 服务。
使用 %REST.API 类创建或更新 REST 服务
创建 REST 服务的推荐方法是从 REST 服务的 OpenAPI 2.0 规范开始,并使用它来生成 REST 服务类。要使用 %REST.API 类执行此操作:
- 获取
REST服务的OpenAPI 2.0规范,采用JSON格式,并将规范保存为文件。该文件必须是UTF-8编码的。 - 在要定义
REST服务的命名空间中,使用该文件创建%DynamicObject的实例。 - 然后调用
%REST.API类的CreateApplication()方法。
这是一个帖子合集,方便你快速了解关于开发者社区的各种积分福利和玩儿法!
亲爱的社区开发者们,大家好!
现在参与Gartner Peer Insight同业评审对我们的产品做出评价,可获得价值 $25 美元的礼品卡。评论观点需中立客观(InterSystems员工不允许参加)并被Gartner审核通过。点击此处开始: https://gtnr.it/3ulVX4K 。
对流程不熟悉的同学,可以参考一下我们此前发布的一篇旧贴。
在创建一个或多个立方体后,你通常会创建并打包一组透视表和仪表盘,而用户通常会根据需要创建新的透视表和仪表盘。
本章简要地引导你了解创建透视表和仪表盘的过程。它包括以下几个步骤。
- 创建透视表
- 创建一个仪表盘
- 导出并打包这些项目
创建透视表
在本教程的前面,我们创建了一个使用Patients cube的透视表。现在让我们创建使用你的新立方体Tutorial的透视表。
- 进入分析器。
- 打开Tutorial立方体。
- 展开AgeD维度。
- 把Age Group拖到行中。
- 将Age Bucket拖到Age Group的子级
- 拖动 Count 到列。
- 将 "All Patients "拖到 "行 "中,在底部。
- 现在 "行 "框看起来像这样。
- 点击保存。
- 系统会显示一个对话框,你可以在其中指定数据透视表的名称。
- 保存数据透视表并给它一个名字。这里,我们保存的是检索数据的基础查询,以及按照你选择的方式显示数据所需的信息。 注意:我们不是在保存数据。
- 对于文件夹,键入Tutorial
- 对于透视表名称,键入Patients by Age Group
- 单击 "确定"。
- 创建另一个透视表,如下所示。
- 对于行,使用Diagnoses
- 对于列,使用Count和Avg Age
- 点击保存。
一个主题区是一个子立方体,可以选择覆盖项目的名称。你定义一个主题区是为了使用户能够关注较小的数据集,出于安全原因或其他原因。本章讨论了以下主题。
简介
在本教程中,我们创建了两个主题区域,按邮政编码划分患者:
- Patient Set A: 居住在邮政编码为32006, 32007, or 36711区域的患者
- Patient Set B: 居住在邮政编码为34577 or 38928区域的患者
创建主题领域
要创建主题区域,请做以下工作。
- 在模型中,点击 "新建"。
- 选中 "主题区域"。
- 对于主题区名称,键入Patient Set A
- 对于主题区的类名,输入 Tutorial.SubjectA
- 对于基础立方体,点击浏览并选择 Tutorial。
- 单击 OK。
- 在一个单独的浏览器标签或窗口中,访问分析器,然后做以下工作。
- 展开HomeD。
- 把ZIP Code放到过滤器框中。这就在数据透视表的正上方增加了一个过滤框。
- 在该过滤框中,点击搜索按钮,然后选择 32006, 32007, 和 36711。
- 然后点击'为透视表显示当前查询'按钮(笔记本带一个笔的图标)
- 系统会显示一个对话框,显示分析器所使用的MDX查询。
SELECT FROM [PPatients] %FILTER %OR({[HOMED].[H1].[ZIP CODE].
增加level
到目前为止,我们所创建的每个维度都包含一个具有一个level的层级结构。在这一节中,我们将在HomeD维度的层级结构中添加一个level。
- 在Tutorial模型中,为HomeD维度添加一个level,如下所示。
- 在类浏览器中,展开HomeCity。
- 拖动PostalCode并把它放到HomeD维度的H1层级结构上。这一步是在City 层之后添加新的PostalCode层。
- 点击PostalCode,在详细信息栏中,将名称改为ZIP Code。
- 编译这个立方体。
- Build这个立方体。
- 进入分析器。
- 展开左边的HomeD维度。将ZIP Code级别显示为行。 注意,有些成员有相同的名字。有时,有多个成员具有相同的名字是正确的。然而,在这种情况下,这是一个错误,因为邮政编码是唯一的。 一个级别只有两种方式可以拥有多个同名的成员。
- 级别名称是基于一个级别属性,而这个属性是不唯一的。(对于一个例子,请看我们在前一章定义的医生级别)。
- 该级别有一个父级别。当DeepSee创建一个级别的成员时,它不仅考虑源属性或表达式;它还考虑父成员。
在现实中,邮政编码和城市之间存在着多对多的关系,所以两者都不是对方的父级。
当我们添加邮政编码级别时,我们把它放在城市级别之后,这意味着城市是邮政编码的父级。这影响了系统为ZIP Code生成成员的方式。
创建Cube
点击主页,Analytics - > 模型。
- 点击新建。系统会显示一个对话框。
- 在这个对话框中,指定以下内容。
- 定义类型。选择 Cube 。
- 多维体名称 - Tutorial
- 多维体的类名 - Tutorial.Cube
- 源类 - 点击浏览按钮,选择BI.Study.Patient,然后点击确定。
系统会创建cube类,你也可以在Studio中查看和修改。
- 点击中间区域的粗体顶行(标有Tutorial)。这将选择cube,这样你就可以在右边编辑它的细节。
- 在细节栏中,将None键入空替换字符串。点击保存,然后点击确定。系统会更新cube类。
- 左边的区域叫做类浏览器。
类浏览器提供了你的基类的类属性(除了关系属性)的有用视图,这使得基于这些属性创建DeepSee元素非常容易。然而,重要的是要知道,尽管这个视图提供了一个访问某些属性的方便方法,你也可以使用源表达式来访问任何数据。这些源表达式是在构建cube时进行评估的,因此不会影响你的运行时性能。
添加levels和度量
- 将以下项目从类浏览器(左侧区域)拖放到模型浏览器(中间区域)的度量标题下。这将创建名为Age和TestScore的度量,基于这些名字的类属性。
- Age
- TestScore
- 对TestScore度量做如下修改。
- 单击 "度量 "标题下的度量名称。
创建一个透视表
- 在模型内容窗格中展开DiagD维度。
- 将Diagnoses拖放到行中,或者双击诊断。
- 将Patient Count(病人计数)拖放到Measure(度量)中,或双击病人数。
- 将 Avg Age(平均年龄) 拖至Measure(度量),或双击 "平均年龄"。
- 单击保存。 系统显示一个对话框,你可以指定透视表的名称。 保存透视表并给它一个名字。当你这样做时,你是在保存检索数据的基础查询,以及以你选择的方式显示数据所需的信息。你不是在保存数据。
- 对于文件夹,键入Test
- 对于透视名称,键入Patients by Diagnosis (Patients Cube)。
- 点击确定。
注意:基表是Patients,这意味着所有的度量都是关于病人的数据总结。
度量和levels
- 点击新建。
- 把Patient Count和Avg Age拖到度量区。 这个简单的透视表向我们展示了这些度量中每一项的总数值,跨越基类中的所有记录。有1000名病人,他们的平均年龄(在这个例子中)是36.59岁。
- 使用SQL 校验
select count(*) as "count" ,avg(age) as avgage from BI_Study.Patient
- 在分析器中,对前面的透视表进行如下修改。
- 在左边展开GenD,把Gender拖到行区。
在InterSystems IRIS数据平台管理门户中,有一些工具用于导入和导出数据。这些工具使用动态SQL,这意味着查询是在运行时准备和执行的。可以导入或导出的行的最大尺寸是3,641,144个字符。
你也可以使用%SQL.Import.Mgr类或LOAD DATA SQL命令导入数据,并使用%SQL.Export.Mgr类导出数据。
从文本文件中导入数据(.csv 和.txt)
你可以从一个文本文件中导入数据到一个合适的InterSystems IRIS类。当你这样做时,系统会在该类的表中创建并保存新的行。该类必须已经存在并且必须被编译。
步骤如下:
- 从管理门户中 选择系统资源管理器,然后选择SQL。用页面顶部的切换选项选择一个命名空间;这会显示可用的命名空间的列表。
- 在页面顶部,点击向导下拉列表,并选择数据导入。
.png)
- 在向导的第一页,首先指定外部文件的位置。对于导入文件所在的位置,点击要使用的服务器的名称。
- 然后输入文件的完整路径和文件名,文件可以是.csv 和 .txt格式。
- 然后选择你想要导入到schema的名称。
- 选择表名。
- 然后点击下一步。
- 在向导的第二页,选择需要导入数据的列。
- 然后点击下一步。
- 在向导的第三页,描述外部文件的格式。
- 在 "您的列所使用的分隔符? "中,点击与导入文件中的分隔符相对应的选项。
本章介绍了如何将SQL code从文本文件导入InterSystems SQL。当你导入SQL code时,InterSystems IRIS 数据平台使用动态SQL准备并执行每一行的SQL。如果遇到无法解析的SQL code行,SQL导入会跳过该行code,继续准备和执行后续的code行,直到到达文件的末端。所有的SQL code导入操作都会导入到当前的命名空间。
SQL导入主要用于导入数据定义语言(DDL)命令,如CREATE TABLE,并使用INSERT、UPDATE和DELETE命令来填充表。SQL导入可以准备和执行SELECT查询,但不创建结果集。
SQL导入可以用来导入InterSystems的SQL code。它也可以用于code迁移,从其他供应商(FDBMS、Informix、InterBase、MSSQLServer、MySQL、Oracle、Sybase)导入SQL。来自其他供应商的code被转换为InterSystems的SQL并执行。SQL导入不能将所有的SQL命令导入到InterSystems SQL中。它导入的是那些与InterSystems IRIS实现的SQL标准兼容的命令和条款。不兼容的特征通常会被解析,但会被忽略。
SQL导入可以成功地准备一个SQL查询--在适当的时候创建一个相应的缓存查询--但它不会执行查询。
你通过调用%SYSTEM.SQL.
视图为存储查询,提供了物理表的所有灵活性和安全权限。所有的视图都是可更新的或只读的。
注意:不能对只读的数据库中的数据创建视图。不能对存储在通过ODBC或JDBC网关连接的Informix表中的数据创建视图。这是因为InterSystems IRIS查询转换在FROM子句中使用子查询,而Informix不支持FROM子句的子查询。
创建视图
视图名称可以是合格的的或不合格的。一个没有限定的视图名称是一个简单的标识符。MyView。一个合格的视图名称由两个简单的标识符组成,一个schema名称和一个视图名称,用句号隔开, 例如MySchema.MyView。视图名和表名遵循相同的命名规则,并对未限定的名称执行相同的schema名称解析。同一模式中的视图和表不能有相同的名称。
你可以通过几种方式定义视图:
- 使用SQL CREATE VIEW命令(在DDL脚本中或通过JDBC或ODBC)。
CREATE VIEW MySchema.MyView (ViewCol1, ViewCol2, ViewCol3) AS
SELECT TableCol1, TableCol2, TableCol3
FROM MyTable
- 使用管理门户的创建视图界面。
第三章 使用 ^%REST 例程创建 REST 服务
本章介绍如何使用 ^%REST 例程创建和删除 REST 服务。
提示:还可以使用此例程更新REST服务;只需删除REST服务,然后重新创建它。
使用^%REST例程
^%REST例程是一个简单的命令行界面。在任何提示下,可以输入以下答案:
^- 使例程跳回上一个问题。?- 使例程显示一条列出所有当前选项的消息。q或quit- 结束例程。
此外,每个问题都会在括号中显示该问题的默认答案。
使用^%REST例程创建REST服务
创建REST服务的推荐方法是从REST服务的OpenAPI2.0规范开始,并使用该规范生成REST服务类。要使用^%REST例程执行此操作:
- 获取
JSON格式的REST服务的OpenAPI 2.0规范。将规范另存为文件或记下可访问规范的URL。 - 在终端中,更改到要在其中定义
REST服务的名称空间。 - 输入以下命令以启动
^%REST例程:
do ^%REST
- 在第一个提示符处,输入
REST服务的名称。该名称用作生成类的包名;使用有效的包名。如果想使用名称列表、l、quit或q(在任何情况下都是变体),请将名称用双引号括起来。例如:"list" - 在下一个提示符处,输入
Y(不区分大小写)以确认您要创建此服务。
然后,该例程会提示输入要使用的 OpenAPI 2.0 规范的位置。输入完整路径名或 URL。
IRIS 命令qlist或list可以用来把输出结果输出到一个文件。
qlist的结果以文本格式输出,以^为分隔符。
第三部分,以^为界,包含运行状态数据。
$ cat iris.log
IRIS^/Applications/iris^2022.1.0.164.0^running, since Thu Apr 7 16:37:03 2022^iris.cpf^1972^52773^0^alert^IRIS^^^/Applications/iris
在列表的情况下,以status:为前缀的一行包含运行状态数据。
对于基于Unix的操作系统
$ cat iris.log
Configuration 'IRIS' (default)
directory: /Applications/iris
versionid: 2021.2.0.650.0
datadir: /Applications/iris
conf file: iris.
BizTalk
Ensemble
WebSphere
.png)
.png)
.png)
.png)
.png)
3.3 定价灵活性
4.2 定价灵活性
3.5 定价灵活性
3.4 部署便利性

