问题标签 [sas-dis]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2027 浏览

sas - SAS DI(数据集成):在现有表中插入数据

我有一个需要在 SAS Data Integration Studio 中执行的 SAS 9.3 程序(请参阅下文):

为此,我在 SAS Data Integration Studio 中执行了以下“用户编写”中的步骤和代码:

RAW ------> 用户编写 -----> 表加载器 -----> 合并

但是,我在 SAS DI 中运行它时收到错误消息。我可以知道如何在 SAS DI 中正确执行此操作吗?

0 投票
1 回答
448 浏览

sas - DI studio:SAS 尝试远程登录到本地进行转换

每当我直接在 DI studio 中的 oracle 表上使用转换时,转换都会自动生成一段代码,如下所示:(远程登录到本地)

它会引发类似如下的错误:

我的问题是:当我之前使用表加载器或删除转换时,不存在这种对本地代码的远程登录。为什么 SAS 尝试使用此服务器上的 defaultauth 元数据对象进行远程连接?

如何禁用 SAS 这样做?

0 投票
1 回答
552 浏览

sas - Read large tables from Teradata into SAS via DI Studio for further processing

I am creating a ETL job in SAS DI Studio to read Teradata table into SAS, then to apply user written code on top of it and then load the SAS work table into Teradata again using Teradata Table Loader.

What is the best way to read the large teradata table (50Cr or more records) into SAS work space? I am currently using following Base SAS code to create a work table:

0 投票
2 回答
633 浏览

sas - 无法在 SAS DIS 中使用用户生成的代码创建输出

我正在尝试对使用标准文件阅读器读入作业编辑器窗口的 csv 文件进行一些操作。为此,我将文件阅读器连接到用户生成代码转换的输入节点,然后按照链接中的说明进行操作。

为了使事情尽可能简单,代码只是创建了一个名为的新字段TEST并将其设置为等于 1:

当我尝试通过右键单击输出襟翼(在运行项目后)并选择“打开”来查看输出时,我收到输入文件的每一列 (*) 的以下错误消息:

在用相关名称 W8T38KNJ...标识的表/视图中找不到列 *。

谷歌认为这个链接是恰当的,但我不同意,因为我没有重命名我的任何专栏。

值得一提的是,这是我与 SAS DIS 合作的第一天。对此的任何帮助将不胜感激。

0 投票
0 回答
62 浏览

sas - 追加包含比组成表更多的行

我有 4 个表(在 SAS DIS 4.9 中),分别具有以下行数:

每个表都具有相同格式的相同列集,如下所示:

我追加了表格,这个追加的输出有 34 207 行。我试图了解这是如何发生的(注意这里有 6980 行)。

我可以做一些连接来尝试调查创建了哪些行,但是这里有两个问题:首先,如果我不明白这个软件的附加是如何工作的,那么很有可能我不明白连接是如何工作的,并且第二个问题(可能是相关的)是我需要永远运行转换并打开输出表。

是否有一些我不知道的附加属性,也许我应该检查一个框?

非常感谢您的时间。

0 投票
1 回答
853 浏览

sas - 在 SAS DIS 中引用作业路径和名称

在 SAS DIS 中,我想在代码中引用作业名称。我知道全局变量etls_jobName包含此信息,但是当我将此值分配给字段并查看输出时,我得到“。”。

最终,我还希望能够获得路径名(在作业的文件夹结构中),但我不确定这种信息在哪里。

非常感谢。

0 投票
1 回答
2810 浏览

sas - 如何使 SAS DIS 作业循环遍历参数表的行

我有一个 SAS DIS 作业,它提取和处理一些带时间戳的数据。这项工作的性质是,必须逐月一次处理一点数据。我可以使用时间过滤器来确保任何给定的运行都在所需的时间范围内,但是我必须手动更改该表的参数并逐月重新运行作业,直到处理完所有数据。

由于时间框架可以追溯到很远,我想尽可能地自动化这个过程。理想情况下,我有一个表格,表格如下:

这可能是迭代作业的一部分,该迭代作业继续使用该表的值作为时间参数执行我的处理作业,直到表用完为止。

据我了解,SAS DIS 中的循环转换旨在循环遍历表,而不是表的行。是将每个日期放在单独的表中的解决方案,还是有直接的方法来实现这一点?

非常感谢。

编辑

因此,在Sushil的帖子的帮助下,我确定了一个解决方案。首先,SAS DIS 似乎需要将日期参数作为文本传递,然后转换为所需的日期格式(至少,这是我可以让事情正常工作的唯一方法)。

程序如下:

在要循环的作业的网格视图中,右键单击并选择属性。导航到参数选项卡并选择新建组。在 General 选项卡中命名参数(让我们使用control_start_date)并在 Prompt Type and Values 选项卡中选择 Prompt type “Text”。按 OK 并使用相同的方法添加任何其他参数(假设control_end_date是另一个参数)。

创建一个将循环参数化作业的控制作业。导入或创建要循环的参数(日期)表。这些应该是日期的字符表示。

将参数表连接到 Loop 转换,将参数化作业连接到 Loop 转换的右端,并将参数化作业的右端连接到 Loop End 转换。

右键单击循环转换并选择属性。选择参数映射选项卡并将控制表日期列正确映射到参数化作业的参数(control_start_datecontrol_end_date)。在 Target Table Columns 选项卡中,确保参数列映射到目标表。选择确定。

在参数化作业中,创建用户编写的代码转换。使用以下代码创建列start_dateend_date(类型)并填充输出工作表:DATE9.

将工作表中的日期连接到WORK.CONTROL_DATES作业的逻辑(可能使用连接),以便它们充当所需容量的过滤器。保存参数化作业。

现在运行控制作业应该能够使用指定的日期过滤器循环作业。

以下PDF中描述了很多内容,但我不确定该链接将存在多长时间,并且我遇到的一些问题没有在那里得到解决。

0 投票
1 回答
1162 浏览

sas - 在 SAS DIS 中创建用户定义的转换以生成工作表

我有在 SAS DIS 中生成一些特定于作业的变量的代码,并且不必为我编写的每个作业将此代码复制到用户编写的代码块中,我希望有一个预定义的转换来执行此操作,我将从转换窗格到任何给定的工作。

创建新转换时,在对话框的 SAS 代码组件中,我粘贴了一些简单的代码。假设它看起来像这样:

我不需要任何提示,所以我在对话框的 Options 组件上选择“下一步”,并且我不需要任何输入,所以我将输入的最小和最大数量设置为 0。我需要 1 个输出(工作我用代码创建的表),所以我保留关联的值。我选择“下一步”和“完成”。

当我尝试将转换转化为工作并运行它时,会发生两件意想不到的事情:

  1. 无法查看转换的输出表,尝试这样做会产生错误:

访问元数据时出错:表没有列 2. 运行转换会导致作业中的另一个转换连接到新创建的转换的输入端(不应接受任何输入)。

我主要关心问题#1(#2 是次要的好奇心)。我猜这个问题出现了,因为软件希望在代码块以外的某个地方指定输出表的列,但我看不到其他地方可以做到这一点。

我想做的事可能吗?我是否必须将作业特定变量创建为宏变量(最好避免这种情况)?

非常感谢!

0 投票
1 回答
104 浏览

sas - 在 SAS DIS 中发布表的退出过程

我有一份工作会进行一些匹配,但可能会产生重复。发生这种情况时,我希望该作业创建一个包含这些重复项的表并发送包含数据的电子邮件。

暂时搁置条件(关于是否实际产生了重复),我什至似乎都无法发送电子邮件。

我已尝试选择Publish to Email转换并尽可能按照此链接进行操作,但出现错误

错误:未找到电子邮件主机 ****** 错误:无法将包发布到电子邮件地址 ****** 错误:EMAIL 传输引擎在发布包时遇到错误。错误:未找到电子邮件主机 ******。打包结束成功

其中 ****** 是我要隐藏的字符串。一个问题是提到的链接要求我显示输出选项卡,但选中指示的框没有效果,并且仍然看不到输出选项卡。我不知道这是否是导致我的错误的原因。

非常感谢您对此的任何帮助。

更新:

我现在可以显示输出选项卡。切换选项仅在关闭并重新打开作业后生效。另一个(主要)问题仍然存在。

0 投票
2 回答
668 浏览

sas - SAS Data integration Studio 4.6 空数据集

在读取空数据集的作业中,我希望它不会因错误而中止作业,而是继续执行下一个计划作业。关于如何做到这一点的任何建议?