标签: ssis-2014

如何查询 SSISDB 以找出包中的错误?

我看过这个问题 SSIS 2012 - How to Query Current Running Packages in T-SQL?

它给了我以下脚本:

SELECT
    E.execution_id
,   E.folder_name
,   E.project_name
,   E.package_name
,   E.reference_id
,   E.reference_type
,   E.environment_folder_name
,   E.environment_name
,   E.project_lsn
,   E.executed_as_sid
,   E.executed_as_name
,   E.use32bitruntime
,   E.operation_type
,   E.created_time
,   E.object_type
,   E.object_id
,   E.status
,   E.start_time
,   E.end_time
,   E.caller_sid
,   E.caller_name
,   E.process_id
,   E.stopped_by_sid
,   E.stopped_by_name
,   E.dump_id
,   E.server_name
,   E.machine_name
,   E.total_physical_memory_kb
,   E.available_physical_memory_kb
,   E.total_page_file_kb
,   E.available_page_file_kb
,   E.cpu_count
,   F.folder_id
, …
Run Code Online (Sandbox Code Playgroud)

sql-server ssis troubleshooting sql-server-2014 ssis-2014

16
推荐指数
3
解决办法
6万
查看次数

从具有不同用户权限的存储过程执行 SSIS 包

由于所需的权限级别不同,我在允许我的用户以合理的方式执行 SSIS 包时遇到了问题。

场景:我们创建了一个数据仓库,有两个不同的 SSIS 包负责加载数据,一个是自动运行的(通过 SQL 代理作业,并且工作正常),另一个必须运行 -一旦上游数据最终确定和清理等,用户的需求。

这个包执行非常有特权的操作,包括在运行开始时备份数据库(可以肯定,可以肯定),删除和重新创建计算表等。

我已经编写了一个存储过程来通过 [SSISDB].[catalog].[create_execution] 和 [SSISDB].[catalog].[start_execution] 存储过程来执行这个作业......这在我的帐户下运行时很好用(我是系统管理员)。

由于 SSISDB 和 MSDB 需要更高级别的权限才能将执行排入队列,因此普通用户运行存储过程失败,并且包本身失败,因为它在其(低级)安全上下文中运行。

我试过的

我试图在存储过程中使用“执行为”来解决这个问题,但是由于跨数据库链接问题、可信标志等,这失败了。

我还试图通过让代理作业运行包来解决这个问题,并且只是从存储过程中运行代理作业,但是我很快就进入了一个痛苦的世界,涉及:

  • 无法在每个作业的基础上设置执行权限
  • 希望通过中央服务器角色配置此访问权限以适应随时间变化的员工,并且工作只能有一个用户作为所有者
  • 代理帐户、凭据与 sql-auth 登录等的黑暗世界

计划 C 和 D

我能想到的唯一选择是创建一个具有提升权限的专用 SQL Server 登录,并相信用户不会传递凭据/失去对谁安排导入的可审计性(如何在其他领域解决此问题)组织),或者自定义构建一个 Web 前端,纯粹是为了允许用户作为他们的“服务器角色”帐户进行身份验证,然后让 Web 应用程序在第二个(特权)连接下运行存储过程。

所以....

关于如何:

  • 让 SSIS 包执行特权操作
  • 由低权限用户执行(使用 AD windows 帐户)
  • 最好是通过中央服务器角色管理运行作业的访问权限(我无法轻松为他们创建新的 Windows 组)
  • 并且任何新的中间/代理帐户都是 SQL Server 身份验证帐户(同样,对 AD 进行更改的能力非常有限)

我知道这里有很多活动部件(有些感觉像是在旋转刀片),所以如果您觉得我错过了任何其他信息,请告诉我。

干杯,蒂姆

编辑....

所以今天我创建了一个具有 ssis_admin 权限的专用 SQL Server 登录,创建了该用户拥有的三个 SQL Server 代理作业,并更新了我的最终用户调用execute as该用户的存储过程。由于无法create execution作为 SQL Server …

sql-server ssis sql-server-2014 ssis-2014

14
推荐指数
1
解决办法
2619
查看次数

sql server 最大内存包括 SSIS?

我在以下服务器上安装了 2 个 sql server 和 SSIS 实例。

请注意 RAM 量接近 384 GB

在此处输入图片说明

在此处输入图片说明

这是我应用于 2 个实例的最大和最小内存设置。我假设两个实例将使用相同数量的资源,如果真的是这样,184,320 MB 也就是 180 GB 是设置内存的一个很好的起始数字?

我会为 SSIS 分配多少内存?

sql-server memory ssis sql-server-2014 ssis-2014

9
推荐指数
2
解决办法
2万
查看次数

SQL Server 2014 SSIS 包在作为代理运行时忽略脚本任务

好的,这就是我要做的。SSIS 包,用于从我们的生产系统查询数据并将它们放入 CSV。有一个将它们上传到第三方的 VB 脚本任务。需要一个带有身份验证的多帖子 HTTP 帖子以及在第 3 方的标头中发送的几个特定字段,因此必须执行自定义 VB 脚本而不是使用 Web 目标。

我有一个 ForEach 循环,通过脚本上传每个文件,然后删除它。在 BIDS 中效果很好。但是当我将它上传到 SSIS 包存储时,上传部分不起作用。但不会抛出任何错误,因为文件仍然被删除。

控制流

查询部分工作,吐出 CSV。脚本任务除了删除文件之外什么都不做。

投入各种 SSIS 登录包和脚本。将“Hello World”日志扔到脚本的第一行,它永远不会被触发。

我所做的:

创建具有完全访问权限的代理,将其链接到新的 Creds 和 SQL 登录名。没有。使 SQL 登录对所有内容都拥有权限,什么都没有。作为新的代理执行帐户和服务帐户运行包。甚至更改了运行 SQL AGENT 服务的帐户(新 SQL 服务器,现在允许将其搞砸)。将包作为 32 位运行。认为它与被设置为“Copy Local = True”的 ScriptTask 引用有关,但并没有改变它。

在投标中工作正常,我在另一个客户的环境中使用了相同的脚本,并且在那里工作正常。我不知道还有什么可以尝试的。有任何想法吗?如果需要,我可以上传代码部分。

证书

SQL 帮助历史记录

sql-server ssis visual-studio ssis-2014

7
推荐指数
1
解决办法
4584
查看次数

从已经实现 SCD 的规范化源设计维度 DB

我构建了一个 SSIS ETL 来将各种数据源(一个来自 MySQL,两个来自 SQL Server)集成到一个单独的 SQL Server 关系和规范化数据库中,我称之为 [NDS]。

SSIS ETL 处理类型 2 更新,因此 [NDS] 生成代理键和 SCD 表包括一个 [_EffectiveFrom] 时间戳和一个可为空的 [_EffectiveTo] 列,并且对链接所有的自然键和漂亮的外键有约束数据一起。

现在,我想用它构建一个 SSAS 维度数据库,没过多久我意识到我正在为雪花模式设置自己:

描述表关系示例的 yUML 图

所以我正在考虑添加一个新的 [DDS](关系)数据库,以创建实际的维度和事实表,这些表将为 SSAS 数据库提供 DSV。

这个 [DDS] 数据库将尽可能地非规范化,以便“扁平化”事实和维度(例如,[OrderHeaders]+[OrderDetails] 到 [Orders] 事实表,以及 [CustomerStores]+[Customers]+ [SalesReps] 到一些 [Customers] 维度表中) - 这样做不仅应该让我更容易在 SSAS 中构建维度层次结构,还应该更容易提出实际的星型模式。

不过我有几个问题:

  • 我可以重用现有代理键的子集吗?我正在考虑采用最细粒度的现有键并将其作为维度键。这是一个好方法,还是我应该忽略 [NDS] 代理键并让 [DDS](关系数据库)生成一组新的代理键?
  • 如何处理SCD?例如,当源系统中的某些特定字段发生变化时,“材料”和“供应商”将在 [NDS] 中生成新记录......我想我必须设计 SSIS ETL 以仅加载“最后一个图像”记录进入 [DDS] 数据库,然后在该过程中重新实现类型 2 更新,即将 [NDS] 视为保留历史记录的“源系统”,同时复制此 [DDS] 数据库中的所有内容。但是,为什么我需要在 [NDS][DDS] 中保留历史记录?显然有些不对劲。

我是在为 Big Mess™ 做好准备,还是在正确的轨道上?

sql-server ssas slowly-changing-dimension dimensional-modeling ssis-2014

6
推荐指数
1
解决办法
302
查看次数

如何在 SQL Server 2014 上安装 SSIS?

我正在 Windows Server 2012 R2 机器上安装 SQL Server 2014,包括 SSIS。

从这个链接: https: //msdn.microsoft.com/en-us/library/ms137861( v= sql.120).aspx ssis 使用端口 135,它应该在防火墙上打开。

我创建一个域帐户来运行 SSIS 在此处输入图片说明

安装 SQL - 功能可以在下图中看到 在此处输入图片说明

所有服务都运行良好查看一个特殊的广告帐户来运行 ssis 服务 在此处输入图片说明

授予作为服务登录并在内存中锁定页面 在此处输入图片说明

在控制面板-> 管理工具-> 计算机管理 在此处输入图片说明

将用户和 ssis 帐户添加到“分布式 com 用户” 在此处输入图片说明

On control panel -> Administrative Tools > Component Services

Then go to computer-> my computer -> DCOM Config -> and look for Microsoft
SQL Server Integration Services 12.0

As you can see on the picture below
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

右键单击 Microsoft SQL Server Integration Services 12.0

在此处输入图片说明

我已将身份验证级别保留为“呼叫”。 …

sql-server installation sql-server-2012 connectivity ssis-2014

5
推荐指数
1
解决办法
3万
查看次数

SQL Server 数据验证的最佳实践

我有我想导入 SQL Server 2014 的 CSV 文件。文件中的每条记录大约有 20 列,每条记录都应验证数据类型合规性以及每列的其他一些检查(最小/最大范围,空/not null 等)。

我正在寻找有关以有效方式执行此操作的模型架构的建议。使用 SSIS 和一些错误表在我看来有点低效,因为它看起来好像我一次只能检查一列和错误处理(尤其是 SSIS 中的列锁定充其量是笨拙的)。

我希望处理每条记录并立即了解该记录中的所有错误,以便我可以立即向提供导入数据的人员提供所有问题的反馈。

sql-server ssis sql-server-2014 data-validation ssis-2014

5
推荐指数
1
解决办法
2万
查看次数

将 NULL 传递给 SSIS 变量

我正在构建一个包来执行一个带有配置表参数的过程。

我已经构建了两个执行 SQL 任务框。从配置表中填充 SSIS 变量。第二个使用这些变量执行过程。

我面临以下行为。整数变量的默认值是 0,字符串是空字符串。即使在从配置表中获取 NULL 之后,这些变量也会保持它们的值。

如何更改此行为以将 NULL 的 SQL Server 逻辑应用为默认“值”,或者仅启用它们从配置表获取的 NULL 以覆盖其默认值?

sql-server ssis sql-server-2014 ssis-2014

5
推荐指数
1
解决办法
7150
查看次数

将子字符串转换为数字 SSIS

我有一个固定宽度的文本文件,我通过 SSIS 引入。作为 SQL Server 输入的一部分,我正在抓取一串字符并尝试将它们转换为派生列中的数字。
数据如下所示:

02 PR000000000000017943 0287801709

我需要获取 17943 并将其转换为 179.43

我尝试过的表达方式是:

(DT_NUMERIC,18,2)(SUBSTRING(EntireRow,10,18)
(DT_NUMERIC,18,2)TRIM(SUBSTRING(EntireRow,10,18))            
Run Code Online (Sandbox Code Playgroud)

我不断收到以下错误:

组件“派生列”(2) 上的 ProcessInput 方法在处理输入“派生列输入”时失败,错误代码为 0xC0209029。

我已经看过了,但无法找到解决方案。

sql-server sql-server-2014 ssis-2014

2
推荐指数
1
解决办法
5351
查看次数