文章
Michael Lei · 五月 24 阅读大约需 7 分钟
InterSystems 数据平台和性能 – 第 1 篇

您的应用程序已部署,一切运行正常。 很好,击个掌! 然后电话突然响个不停 – 用户投诉应用程序有时很“慢”。 这是什么意思? 有时? 您有哪些工具,查找和解决这个缓慢问题应查看哪些统计数据? 您的系统基础架构是否能承担用户负载的任务? 在投入生产之前,应该询问哪些基础架构设计问题? 如何自信地为新硬件规划容量,而不会过度规定? 如何停止电话铃声? 如何一开始就不让它响?

00
0 0 54
文章
姚 鑫 · 八月 29 阅读大约需 6 分钟
第一章 SQL中使用的符号

第一章 SQL中使用的符号

SQL中用作运算符等的字符表

符号表

每个符号的名称后跟其ASCII十进制代码值。

00
0 0 54
文章
Peng Qiao · 一月 5 阅读大约需 4 分钟
增强型日志监视器

各位开发者们大家好!

 

此前,我向各位介绍了一个非常好用的运行分析监控面板,它能使消息处理过程中的关键指标可视化,例如入站/出站消息的数量和平均处理时间等。  

 

现在,我想用一项许多人已熟悉的工作流程,来展示一个增强型日志监视器——将警告信息作为Production中的消息来处理。我们可以通过创建路由规则来实现对告警消息的过滤和路由,并运用预先构建的组件(例如电子邮件适配器等)来发送粒度级别的通知。  

 

如你所知,监视和管理警告信息是确保任何应用程序平稳运行的关键。对诸如HealthShare和IRIS医疗版这样支撑医疗系统运转的一级应用程序和集成引擎来说对告警信息的处理更显得尤为重要。

 

10
0 0 53

本贴提供了在 VMware ESXi 5.5 及更高版本的环境中部署 Caché 2015 及更高版本时,关于配置、系统规模调整和容量规划等方面的指南。

我假定您已经了解 VMware vSphere 虚拟化平台,所以直接给出推荐。 本指南中的推荐不特定于任何具体硬件或站点特定的实现,也不应作为规划和配置 vSphere 部署的全面指南,而是一份您可以做出选择的最佳实践配置清单。 我希望您的 VMware 专家实施团队能针对具体站点对这些推荐进行评估。


这里是 InterSystems 数据平台和性能系列的其他帖子的列表。

注:本帖更新于 2017 年 1 月 3 日,强调必须为生产数据库实例设置虚拟机内存预留,以保证 Caché 有足够内存可用,并且不会出现内存交换或膨胀而对数据库性能产生负面影响。 更多详细信息,请参见下面的内存部分。

00
0 0 53

本文介绍了 InterSystems 客户围绕 SDDC 和 HCI 解决方案的注意事项。

采用软件定义数据中心 (SDDC) 和超融合基础架构 (HCI) 解决方案的 InterSystems 客户需要重点关注的事项

越来越多的 IT 组织正在探究使用SDDC 和 HCI 解决方案的可行性。 这些解决方案看上去很有吸引力,其市场定位为跨异构数据中心和云基础设施可以使得 IT 管理更容易、投入的成本花费更少。 对于 IT 组织来说,潜在的好处是巨大的,许多 InterSystems 客户正在拥抱 SDDC、HCI 或两者兼有。

如果您正在考虑 SDDC 或 HCI 解决方案,请联系您的销售客户经理或销售工程师,安排与技术架构师的通话。 这对于确保成功非常重要。

00
0 0 51
文章
姚 鑫 · 三月 13 阅读大约需 9 分钟
第九章 SQL查询数据库(二)

第九章 SQL查询数据库(二)

调用用户定义函数的查询

InterSystems SQL允许您在SQL查询中调用类方法。这为扩展SQL语法提供了强大的机制。

若要创建用户定义的函数,请在持久性InterSystems IRIS类中定义一个类方法。该方法必须具有文字(非对象)返回值。这必须是一个类方法,因为在SQL查询中将没有对象实例可以在其上调用实例方法。还必须将其定义为SQL存储过程。

例如,我们可以在MyApp.Person类中定义一个Cube()方法:

00
0 0 51
文章
Hao Ma · 四月 29 阅读大约需 3 分钟
WebGateway系列(4): 配置HTTPS访问IRIS的Web服务

经常被问到有关IRIS如何支持SSL,HTTPS的问题,有必要写个东西介绍一下。

HTTPS的原理

简单的说,https实现两个目的:一是访问网站加密,2是确认被访问的网站是真的。

首先,被访问的网站要申请一个证书,这个证书必须是权威机构发放的,比如google, VeriSign等等,所有的浏览器里有预装了这些组织的公钥(Public Key),因此能确认你提供的证书真是这些组织给出的,而这个证书可以证明你的网站的身份。注意证书证明的是提供服务的组织和服务的真实性,和用什么设备没关系,也就是说,IRIS不管证书的事儿。

接下去,被访问的服务器可以生成公钥和私钥,和客户端交换key,生成整个世界只有两者知道的security code,用来两者之间数据的交换。详细的过程和消息交互可以在网上找到很多很好的文章和视频,比如这个: How does HTTPS work? What's a CA? What's a self-signed Certificate?

00
0 0 50

可以使用%SYS.Journal.File类中的ByTimeReverseOrder查询,以及%SYS.Journal.Record类中的List查询来实现。

下面是这两个查询的具体作用:

A) %SYS.Journal.File类中的ByTimeReverseOrder查询
这个查询会获取journal日志文件名并按降序排列

10
1 0 50
问题
deng hang · 六月 21
数据结构+排序算法

除了objectscript 自带的 list,array 数据结构以外,是否有存在其它已经实现好的数据结构,类似 java 里面 collection包一样,是否有已经实现好的排序工具,有没有针对集合类的sort工具。

00
0 6 50
文章
姚 鑫 · 四月 1 阅读大约需 7 分钟
第十四章 使用SQL Shell界面(三)

第十四章 使用SQL Shell界面(三)

SQL元数据、查询计划和性能指标

显示元数据

SQL Shell支持MMetadata命令以显示有关当前查询的元数据信息。

对于每个结果集项目,此命令列出以下元数据:列名称(SQL字段名称),键入(ODBC数据类型整数代码),PRE(精度或最大长度),比例(最大分数数字),NULL(BOOLEAN:1 = NULL允许,0 =不允许空值),标签(标题标签,请参阅列别名),表(SQL表名称),架构(架构名称),CTYPE(客户端数据类型,请参阅%SQL.statementColumn ClientType属性)。

SHOW STATEMENT

可以执行查询,然后发出show语句或显示st以显示准备好的SQL语句。默认情况下,必须执行查询。可以避免通过设置executemode =延迟执行查询,从而发出查询,然后发出show语句sql shell命令。

00
0 0 49

(ECP) Caché 出色的可用性和扩展特性之一是企业缓存协议 (ECP)。 在应用程序开发过程中,如对使用 ECP 的分布式处理加以考虑,可以横向扩展 Caché 应用程序的架构。 应用程序处理可以调整为非常高的速率,处理能力从单个应用程序服务器扩展到最多 255 个应用程序服务器,并且不需要任何应用程序更改。

在我参与的 TrakCare 部署中,ECP 已广泛使用多年。 十年前,主要供应商之一的一台“大型”x86 服务器可能总共只有八个核心。 对于大型部署来说,ECP 是横向扩展商业服务器处理能力的方式,不适合单台昂贵的大型企业服务器。 即使是高核心数的企业服务器也有限制,因此 ECP 也用于扩展这些服务器上的部署。

00
0 0 49
文章
Louis Lu · 一月 7 阅读大约需 4 分钟
创建“虚拟”的SOAP Web 服务

在 Caché 中处理 SOAP 请求时,有时需要通过直接访问(有时是编辑)所发送的 XML(即 SOAP 请求和随后的 SOAP 响应)来调试错误。 如果要调试 Caché Web 服务,使用 SoapUI (https://www.soapui.org/) 之类的工具手动创建和控制 SOAP 请求通常很有用,这样可以很容易地在 Caché Web 服务上看到调整的效果。

但是如果已经有 Web 服务(可能不是 Caché),并且想要调试相关的 Caché Web 客户端该怎么办? 您可能已将 SOAP 响应 XML 保存在文件中(例如 Caché SOAP 日志),您需要一个“虚拟”Web 服务将其发送到 Caché Web 客户端,就像实际的 Web 服务一样操作。

由于我经常在技术支持的过程中需要调试客户的 Caché Web 客户端,我创建了这样一个“虚拟”的Web 服务 – 见下文:

00
0 0 48
文章
Hao Ma · 一月 10 阅读大约需 15 分钟
APM – 监控 SQL 查询性能

自 Caché 2017 以后,SQL 引擎包含了一些新的统计信息。 这些统计信息记录了执行查询的次数以及运行查询所花费的时间。

对于想要对包含许多 SQL 语句的应用程序的性能进行监控和尝试优化的人来说,这是一座宝库,但访问数据并不像一些人希望的那么容易。

00
0 0 48
文章
姚 鑫 · 三月 27 阅读大约需 11 分钟
第十三章 使用动态SQL(五)

第十三章 使用动态SQL(五)

从结果集中返回特定的值

要从查询结果集中返回特定的值,必须一次一行遍历结果集。
要遍历结果集,请使用%Next()实例方法。
(对于单一值,结果对象中没有行,因此%Next()返回0,而不是错误。)
然后,可以使用%Print()方法显示整个当前行的结果,或者检索当前行的指定列的值。

%Next()方法获取查询结果中下一行的数据,并将该数据放入结果集对象的data属性中。
%Next()返回1,表示它位于查询结果中的某一行上。
%Next()返回0,表示它位于最后一行(结果集的末尾)之后。
每次调用%Next()返回1个增量%ROWCOUNT;
如果游标定位在最后一行之后(%Next()返回0),%ROWCOUNT表示结果集中的行数。

00
0 1 48

请问cahce中所有的数据库访问都是通过cache server完成的吗,比如使用终端访问数据库、studio开发的应用、使用第三方库使用代码都是先访问cache server,然后通过cache server对数据进行存取的吗?使用studio开发的应用程序也是跑在cache server中吗? 如果是的话studio开发的应用程序(比如web程序)如何跟cache server分开部署呢?

00
0 4 47

 

前面介绍了通过mirroring或shadow,使用journal日志过滤器的方式,在不改动数据模型的情况下实现InterSystems IRIS/Caché上的CDC能力。
但如果你可以修改InterSystems IRIS/Caché上的数据模型,也可以考虑使用DSTIME特性实现变更数据捕获。

DSTIME特性

DSTIME特性是InterSystems IRIS/Caché的嵌入式实时BI工具DeepSee用于跟踪数据变更的。
InterSystems IRIS和2011版之后的Caché,都支持DSTIME特性。它会自动记录数据库中SQL表记录或持久化对象的变更,并将变更记录写入持久化的多维数组^OBJ.DSTIME中。

00
0 0 45
文章
姚 鑫 · 四月 13 阅读大约需 14 分钟
第二章 定义和构建索引(一)

第二章 定义和构建索引(一)

概述

索引是由持久类维护的结构,InterSystems IRIS®数据平台可以使用它来优化查询和其他操作。

可以在表中的字段值或类中的相应属性上定义索引。(还可以在多个字段/属性的组合值上定义索引。)。无论是使用SQL字段和表语法还是类属性语法定义相同的索引,都会创建相同的索引。当定义了某些类型的字段(属性)时,InterSystems IRIS会自动定义索引。可以在存储数据或可以可靠派生数据的任何字段上定义附加索引。InterSystems IRIS提供了几种类型的索引。可以为同一字段(属性)定义多个索引,为不同的目的提供不同类型的索引。

无论是使用SQL字段和表语法,还是使用类属性语法,只要对数据库执行数据插入、更新或删除操作,InterSystems IRIS就会填充和维护索引(默认情况下)。可以覆盖此默认值(通过使用%NOINDEX关键字)来快速更改数据,然后作为单独的操作生成或重新生成相应的索引。可以在用数据填充表之前定义索引。还可以为已经填充了数据的表定义索引,然后作为单独的操作填充(构建)索引。

00
0 0 44
文章
姚 鑫 · 三月 4 阅读大约需 11 分钟
第三章 SQL语言元素(二)

第三章 SQL语言元素(二)

算术运算符和函数

InterSystems SQL支持以下算术运算符:

  • + 加法操作符。
    例如,17+7 = 24

  • 减法运算符。
    例如,17-7等于10
    注意,这些字符中的一对是InterSystems SQL注释指示器。
    因此,要指定两个或多个减法操作符或负号,必须使用空格或圆括号。
    例如,17- -7或17-(-7)等于24

10
0 5 43

众所周知,InterSystems IRIS 提供了很多的工具来提升应用系统可伸缩性。尤其在提升数据并行处理能力方面,InterSystems 做了很多努力,例如在 SQL 查询中使用并行处理,以及在 IRIS中引入最具吸引力的特征:分片(sharding)。然而,许多成熟的开发成果最初是在 Caché中完成的,而且已经迁移到 IRIS 中。这些成熟的开发成果大都使用 DBMS(数据库管理系统)的多模型功能,实现在单独的数据库中共存不同的数据模型。例如, HIS qMS 数据库同时包含语义关系(电子病历)、传统关系(与 PACS 的交互)和层次数据模型(实验室数据以及与其他系统的集成)。这些数据模型大多是通过 SP.ARM 的 qWORD 工具(一种直接访问 Global的小型数据库管理系统)实现的。遗憾的是,由于查询未使用 IRIS SQL,无法利用并行查询处理的新功能进行扩展。

而且,随着数据库规模的不断增长,大型关系型数据库所固有的大多数问题开始出现在非关系型数据库中。这就是我们关注可用于扩展的并行数据处理技术的一个主要原因。

在本文中,我将围绕多年来在解决任务时用到的并行数据处理展开多方位讨论,而这些是我在大数据问题探讨中很少提到的。我将重点讨论数据库的技术改造,或者更确切地说,是数据库转换技术。

00
0 0 42
文章
Michael Lei · 五月 12 阅读大约需 13 分钟
InterSystems 数据平台和性能 – 第 3 篇:聚焦 CPU

本周,我将关注 CPU - 主要硬件食物群之一 :) 一位客户请我就以下情况提供建议:他们的生产服务器已接近使用寿命终止,是时候更新硬件了。 他们还考虑通过虚拟化来整合服务器,并希望适当调整裸机或虚拟机的容量规模。 今天我们将关注 CPU,在后面的帖子中,我将介绍适当调整其他主要食物群(内存和 IO)规模的方法。

所以问题是:

  • 如何将五年多以前对处理器的应用要求转换成针对当今的处理器?
  • 目前的处理器有哪些是合适的?
  • 虚拟化如何影响 CPU 容量计划?

2017 年 6 月添加: 要深入了解 VMware CPU 注意事项和规划的细节,以及一些常见问题,另请查看以下帖子:虚拟化大型数据库 - VMware cpu 容量计划

00
0 0 41
文章
姚 鑫 · 四月 8 阅读大约需 8 分钟
第二十章 用户、角色和权限

第二十章 用户、角色和权限

InterSystems IRIS®具有系统级安全性,以及一组与sql相关的额外安全性特性。
在数据库级保护之外,InterSystems SQL安全性提供了额外级别的安全功能。
SQL和系统级安全性之间的一些关键区别是:
- SQL保护比系统级保护更细粒度。可以为表、视图和存储过程定义特权。
- SQL权限既可以授予用户,也可以授予角色。
系统级权限只分配给角色。
- 持有SQL特权会隐式授予执行SQL操作所需的任何相关系统特权。
(相反,系统级特权并不意味着表级特权。)

InterSystems SQL在InterSystems IRIS数据平台上对ODBC、JDBC、Dynamic SQL和SQL Shell接口进行权限检查。
嵌入式SQL语句不执行特权检查;
假定使用嵌入式SQL的应用程序在使用嵌入式SQL语句之前会检查特权。

SQL权限和系统权限

要通过特定于SQL的机制操作表或其他SQL实体,用户必须具有适当的SQL权限。
系统级权限不足。
用户可以直接被授予SQL权限,也可以属于具有SQL权限的角色。

00
0 0 41