Jenner 专业服务

从 SAS 迁移到 Jenner Analytics

面向企业级 SAS 代码资产、由测试背书的迁移

您的 SAS 资产运行良好。数千个程序、宏、格式和计划作业经过多年打磨,而它们所做的事情,很多除了代码本身之外别无记载。把这些搬到任何新平台上——无论兼容性多好——都有一个实实在在的风险:原本正确的东西变得微妙地错了,而且在真正出事之前没有人会察觉。

Jenner 专业服务用一条简单的纪律消除这个风险。在改动任何东西之前,我们先为现有系统的行为建立一份完整、可执行的记录。然后用这份记录,一个测试接一个测试地证明迁移后的系统做的是同一件事。

结果是一次您可以凭证据而非凭信心签字确认的迁移,以及一套永远属于您的回归测试。

从探查阶段开始

Jenner 是其中一条路,而不是唯一一条

我们是 SAS 方面的专家——我们亲手做出了这门语言与整套系统的完整实现,这就是证明。不过,迁移到它只是您可以与我们一起走的路径之一。

我们可以用自己实现的 SAS 兼容代码,以及测试驱动的工作方法,来保障您顺利迁移到 Python 或 R、Snowflake 或 Databricks,乃至 Siemens SLC 等其他方案。

我们之所以推荐迁移到 Jenner,是因为对已经拥有 SAS 基础设施的企业来说,它同时更快、更简单,成本也更低。

为什么仅有兼容性不等于认证

Jenner 运行 SAS 语言、几乎全部过程、宏功能、图形以及广泛的数据连接。对大多数代码而言,迁移就是把 Jenner 指向同一批程序。但企业级代码资产从来不只是语言,它还包括语言所触及的一切:

环境与配置

autoexec.sas、配置文件、系统选项(ENCODINGLOCALEYEARCUTOFFVALIDVARNAMEFMTSEARCHSASAUTOS)、环境变量、SYSPARM,以及 WORK 库的大小和生命周期。

机密与凭据

嵌在 LIBNAME 语句里的口令、{SAS002} 编码的字符串、%include 引入文件中的凭据、Kerberos 或 SSO 票据,以及这些东西究竟应该放在哪里的问题。

数据库连接

面向 Oracle、DB2、Teradata、SQL Server、Snowflake、Hive 等的 SAS/ACCESS 引擎;显式与隐式透传 SQL;影响结果的引擎选项(DBCOMMITREADBUFFINSERTBUFFBULKLOAD);日期、小数与 NULL 的类型映射;以及当 SQL 被下推到数据库而非本地执行时悄然改变的行为。

文件与库的位置

硬编码路径、Windows 盘符与 Linux 挂载点之别、区分大小写的文件名、NFS 与 SMB 共享、FILENAME PIPEX 命令、SYSGET,以及文件权限。

专有产物

格式目录、已编译或已存储的宏、索引、审计轨迹、视图、SPDE 库、传输文件、加密或压缩的数据集,以及需要重新生成而不能直接复制的 V6/V8 时代数据集。

服务器端产品

SAS/CONNECT 的 RSUBMIT 块、Grid、SAS/SHARE、存储过程、元数据服务器授权、Enterprise Guide 项目、DI Studio 生成的作业,以及 Viya 的 CAS 操作。每一项在新平台上都有对应物,但都不是完全相同的东西。

调度与编排

LSF、Control-M、cron、作业依赖、返回码约定、查找特定 NOTEWARNINGERROR 文本的日志抓取程序、SYSERRSYSCC 逻辑,以及 FILENAME EMAIL 告警。

输出保真度

ODS 的 PDF、RTF、Excel 和 HTML 输出目标、PROC TEMPLATE 样式、tagset、字体、图形设备驱动,以及下游消费者按位置解析的报表。

数值与统计

边界处的浮点舍入、排序校对规则与并列次序、在不同实现之间无法复现的随机数流(RANUNIRANDSTREAMINIT),以及收敛路径可能在容差范围内发生差异的迭代过程。

依赖怪癖的代码

未初始化的变量、PROC SQL 的重新合并、隐式 RETAIN、被当作正常现象的截断警告,以及碰巧在今天给出正确答案的未文档化行为。

与其他一切的集成

通过 SASPy 调用的 Python、R、经由 IOM 的 Java 与 .NET 客户端、连到 SAS/SHARE 的 JDBC、直接读取 .sas7bdat 文件的 Tableau 与 pandas,以及对 Viya 的 REST 调用。

治理

受监管行业的验证要求(GxP、21 CFR Part 11、模型风险管理)、行级安全、个人信息处理、审计轨迹,以及许多长期存续的 SAS 资产中根本没有版本控制这一事实。

这些都不罕见。它们全都可以提前找出来,也全都可以测试。这正是下面这套流程存在的意义。

Jenner 的迁移流程

1

探查

在估算工作量之前,我们先盘点资产。通过对源码树、调度和日志的自动化分析,我们生成一张涵盖程序、宏、格式、库、外部文件和数据库连接的依赖图,并识别出哪些真正在运行、哪些已经死掉、哪些归谁所有。上述每一类都会逐一核查,发现的问题按迁移工作量评分。

交付物

一份盘点与风险报告,以及针对后续阶段的固定价格方案。即便您决定不继续,这份报告也归您所有。

2

特征化

这是让后面一切变得可靠的阶段,而且完全在您现有的 SAS 系统上完成,此时尚未迁移任何东西。

对范围内的每一个程序,我们用 AI 辅助分析构建特征化测试:也就是关于代码今天做了什么的可执行规格。每个测试捕获程序所消费的输入——数据集、宏参数、外部文件、数据库抽取、环境设置——在您当前的 SAS 安装上运行它,并记录它产出的一切:输出数据集、日志内容、返回码、ODS 输出、宏变量状态,以及写文件或发邮件这类副作用。

正是 AI 让这件事在企业规模上变得可行。读一万个程序并推断每一个处理了哪些边界情况,不是有交付期限的人能做的活。生成测试用例、测试数据和比较逻辑,恰恰是当前模型擅长的那类量大且模式性强的工作,而且每一个生成的测试都会在它所描述的系统上运行以完成验证。如果一个测试在您现有的 SAS 上通不过,它就不是您系统的测试,会被丢弃。

比较规则按输出逐项设定。数据集默认严格比对;在浮点或迭代过程使逐位相等失去意义的地方,明确声明数值容差;日志比较是结构性的而非文本性的,因此措辞改动过的 NOTE 不会让作业失败,而行数变化会。当前日期、随机种子这类非确定性输入会被控制,使同一个测试在任何一天都给出同样的答案。若无法用生产数据做测试,我们会构建走同样代码路径的脱敏或合成测试数据。

交付物

一套纳入版本控制、在程序/宏/过程层面具有可度量覆盖率的测试套件,以及一份来自您现有系统的结果基线。这套测试归您所有。它按照能在 Jenner、在 SAS 以及在任何懂这门语言的环境上运行的方式编写,且其价值独立于本次迁移:大多数 SAS 资产从来没有过这样一套测试。

3

迁移

有了基线,迁移就成了一项“完成”定义明确的工程工作。我们在您的环境中部署 Jenner,处理探查阶段发现的环境事项(路径、库、机密管理、数据库连接、调度器集成),然后运行完整的测试套件。

每一次失败都会被归入以下四类之一:

01Jenner 缺陷

代码是对的,错的是 Jenner。Jenner 每周发布新版本;在客户迁移中发现的缺陷会被优先处理,失败的那个测试也会永久成为 Jenner 自身回归测试的一部分。

02环境

需要设置的某个路径、凭据、连接或选项。修好之后重新运行。

03依赖怪癖

代码依赖了未文档化的 SAS 行为。我们会指出具体是哪一行、具体是什么行为,由您在两者之间选择:改代码(由测试证明这次改动是安全的),或者让 Jenner 去匹配这个怪癖。

04可接受的差异

结果在已声明的容差范围内存在差异,或者某条日志消息措辞不同。这些会被记录并签字确认,绝不会被默默接受。

问题修复期间测试套件持续运行,因此进度是一个数字而不是一种看法,回归也会在被引入的当天被抓住。

交付物

一份完整测试套件全部通过的迁移后代码,或者每一处剩余差异都已书面处置的代码。

4

认证

认证是一份证据材料,它让您的项目发起人、审计师和监管机构能够接受这次迁移。

我们安排一段并行运行期,生产作业在两套系统上同时执行,输出按照与测试套件相同的规则自动比对。认证材料包含盘点结果、测试套件及其覆盖率、基线、最终运行结果、每一处差异的处置,以及从每条需求或每个程序到覆盖它的测试之间的可追溯性。对受监管的客户,这份材料会按支撑 IQ/OQ/PQ 验证与审计的方式组织。

交付物

一份签署的认证材料,以及是否放行的建议。

5

切换与支持

切换会围绕您的批处理窗口和 SAS 许可续期日来安排,并配备经过演练的回退路径。调度器重新指向新系统,监控与告警得到确认,SAS 环境按您的时间表退役。

测试套件在切换之后继续运行。由于 Jenner 每周发布,您在获得每一项改进的同时,也获得同样的证据:您所依赖的一切都没有改变。我们会培训您的团队,让测试套件随代码资产一起成长。

交付物

运行在 Jenner 上的生产环境、一份 SAS 退役计划,以及一套持续为您工作的回归测试。

您将得到

  • 一份完整、最新的 SAS 资产清单,包括那些已经没人记得的部分。
  • 一套具有可度量覆盖率、归您所有、可跨平台带走的特征化测试。
  • 一次以测试结果而非日期来定义完成的迁移。
  • 一份为审计师和监管机构准备的认证材料。
  • 对回归的长期防护,无论在 Jenner 还是别处。
  • 在您的迁移中发现的缺陷会在产品里修复,而不是在您的代码里绕过去。

项目如何组织

探查

固定价格、周期短。它产出后续阶段的方案,报价依据的是对您资产规模与复杂度的实测结果,而不是对它们的估计。

特征化、迁移、认证

通常作为一个范围固定的整体项目交付,里程碑验收与测试套件的结果挂钩。

切换后支持

在测试套件交接完毕、您的团队完成扩展培训之后,可作为年度服务提供。

费用参考

小型迁移与试点

$1,000 – $21,000

通常可以远程完成,周期从一周到一个月不等。

规模更大、更复杂的迁移

$52,000 – $405,000

需要部分现场工作和/或深入的领域专长,周期通常在两个月到六个月之间。

所有金额均以美元(USD)计。

以上不含软件许可费用;不过许可方式非常清晰,价格也有竞争力。 查看定价页面.

联系专业服务团队

从探查阶段开始

把您 SAS 环境的情况发给我们——平台、大致的程序数量、在用的产品、数据库和调度器——我们会为您界定一个探查阶段的范围。