我看过这个问题 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) 由于所需的权限级别不同,我在允许我的用户以合理的方式执行 SSIS 包时遇到了问题。
场景:我们创建了一个数据仓库,有两个不同的 SSIS 包负责加载数据,一个是自动运行的(通过 SQL 代理作业,并且工作正常),另一个必须运行 -一旦上游数据最终确定和清理等,用户的需求。
这个包执行非常有特权的操作,包括在运行开始时备份数据库(可以肯定,可以肯定),删除和重新创建计算表等。
我已经编写了一个存储过程来通过 [SSISDB].[catalog].[create_execution] 和 [SSISDB].[catalog].[start_execution] 存储过程来执行这个作业......这在我的帐户下运行时很好用(我是系统管理员)。
由于 SSISDB 和 MSDB 需要更高级别的权限才能将执行排入队列,因此普通用户运行存储过程失败,并且包本身失败,因为它在其(低级)安全上下文中运行。
我试过的:
我试图在存储过程中使用“执行为”来解决这个问题,但是由于跨数据库链接问题、可信标志等,这失败了。
我还试图通过让代理作业运行包来解决这个问题,并且只是从存储过程中运行代理作业,但是我很快就进入了一个痛苦的世界,涉及:
我能想到的唯一选择是创建一个具有提升权限的专用 SQL Server 登录,并相信用户不会传递凭据/失去对谁安排导入的可审计性(如何在其他领域解决此问题)组织),或者自定义构建一个 Web 前端,纯粹是为了允许用户作为他们的“服务器角色”帐户进行身份验证,然后让 Web 应用程序在第二个(特权)连接下运行存储过程。
关于如何:
我知道这里有很多活动部件(有些感觉像是在旋转刀片),所以如果您觉得我错过了任何其他信息,请告诉我。
干杯,蒂姆
所以今天我创建了一个具有 ssis_admin 权限的专用 SQL Server 登录,创建了该用户拥有的三个 SQL Server 代理作业,并更新了我的最终用户调用execute as该用户的存储过程。由于无法create execution作为 SQL Server …
我在以下服务器上安装了 2 个 sql server 和 SSIS 实例。
请注意 RAM 量接近 384 GB
这是我应用于 2 个实例的最大和最小内存设置。我假设两个实例将使用相同数量的资源,如果真的是这样,184,320 MB 也就是 180 GB 是设置内存的一个很好的起始数字?
我会为 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 引用有关,但并没有改变它。
在投标中工作正常,我在另一个客户的环境中使用了相同的脚本,并且在那里工作正常。我不知道还有什么可以尝试的。有任何想法吗?如果需要,我可以上传代码部分。
我构建了一个 SSIS ETL 来将各种数据源(一个来自 MySQL,两个来自 SQL Server)集成到一个单独的 SQL Server 关系和规范化数据库中,我称之为 [NDS]。
SSIS ETL 处理类型 2 更新,因此 [NDS] 生成代理键和 SCD 表包括一个 [_EffectiveFrom] 时间戳和一个可为空的 [_EffectiveTo] 列,并且对链接所有的自然键和漂亮的外键有约束数据一起。
现在,我想用它构建一个 SSAS 维度数据库,没过多久我意识到我正在为雪花模式设置自己:
所以我正在考虑添加一个新的 [DDS](关系)数据库,以创建实际的维度和事实表,这些表将为 SSAS 数据库提供 DSV。
这个 [DDS] 数据库将尽可能地非规范化,以便“扁平化”事实和维度(例如,[OrderHeaders]+[OrderDetails] 到 [Orders] 事实表,以及 [CustomerStores]+[Customers]+ [SalesReps] 到一些 [Customers] 维度表中) - 这样做不仅应该让我更容易在 SSAS 中构建维度层次结构,还应该更容易提出实际的星型模式。
不过我有几个问题:
我是在为 Big Mess™ 做好准备,还是在正确的轨道上?
sql-server ssas slowly-changing-dimension dimensional-modeling ssis-2014
我正在 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 服务

Run Code Online (Sandbox Code Playgroud)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
右键单击 Microsoft SQL Server Integration Services 12.0
我已将身份验证级别保留为“呼叫”。 …
sql-server installation sql-server-2012 connectivity ssis-2014
我有我想导入 SQL Server 2014 的 CSV 文件。文件中的每条记录大约有 20 列,每条记录都应验证数据类型合规性以及每列的其他一些检查(最小/最大范围,空/not null 等)。
我正在寻找有关以有效方式执行此操作的模型架构的建议。使用 SSIS 和一些错误表在我看来有点低效,因为它看起来好像我一次只能检查一列和错误处理(尤其是 SSIS 中的列锁定充其量是笨拙的)。
我希望处理每条记录并立即了解该记录中的所有错误,以便我可以立即向提供导入数据的人员提供所有问题的反馈。
我正在构建一个包来执行一个带有配置表参数的过程。
我已经构建了两个执行 SQL 任务框。从配置表中填充 SSIS 变量。第二个使用这些变量执行过程。
我面临以下行为。整数变量的默认值是 0,字符串是空字符串。即使在从配置表中获取 NULL 之后,这些变量也会保持它们的值。
如何更改此行为以将 NULL 的 SQL Server 逻辑应用为默认“值”,或者仅启用它们从配置表获取的 NULL 以覆盖其默认值?
我有一个固定宽度的文本文件,我通过 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。
我已经看过了,但无法找到解决方案。