AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-140346

DimUser's questions

Martin Hope
DimUser
Asked: 2018-08-31 02:54:59 +0800 CST

从存储过程创建文本文件

  • 1

我有一个 ETL 过程(在 SSIS 中),它从数据库中提取数据并将数据写入预定义的文本文件。目前,我手动创建目录和文件以满足此过程。

为了向这个过程添加一个新变量,我运行了一个 usp 将一个新行添加到一个表中,该行被读入 ETL 过程并确定要运行的包。

为了消除上述目录和文件的手动创建,并消除人为错误的可能性,我想在通过 usp 添加新行时创建新目录和文件。

简而言之; 我使用 来检查子目录是否存在xp_dirtree,然后使用xp_create_subdir创建新的子目录。我现在要做的是在新的子目录中创建一个空文本文件,在 ETL 过程中将数据写入其中。

我认为我有以下选择:

  1. 使用xp_cmdshell;我知道这会带来耻辱感,但如果这是最佳方式,我并不反对使用它。默认情况下这是禁用的,但我可以在 usp 中重新配置打开和关闭。
  2. 使用 fso;我在 .NET 脚本中使用过 fso,但没有在SQL Server中使用它的经验。我似乎找不到任何指示如何创建文本文件的资源,只能读写。
  3. 使用SSIS;在 ETL 项目中,我有一个平面文件连接管理器,其中连接字符串是根据变量的名称动态设置的。我不确定如果文本文件不存在是否会自动创建?我已经手动创建它们以避免任何失败的机会。如果文本文件是自动创建的,这可能是一个选项。

我故意将 BCP 排除在上面的选项之外,因为我没有要复制的结果集,因此假设这不是一个可行的选项?除非我可以“复制”一个空数据集来创建文本文件?

任何人都可以提供任何有用的资源来实现这一目标吗?或者任何人都可以提供有关如何最好地实现这一目标的任何指示吗?是xp_cmdshell最好的办法吗?我想在创建新子目录时创建一个空文本文件。

在此先感谢您提供的任何帮助。

sql-server sql-server-2016
  • 1 个回答
  • 1386 Views
Martin Hope
DimUser
Asked: 2018-07-19 05:30:05 +0800 CST

SSIS - sp 在调试模式下记录计数器,但不是来自代理作业

  • 1

在一个 SSIS 项目中,我执行了许多 usp 来存储行计数器,例如在 ETL 过程中提取的行数、插入的行数等。

我的 SSIS 项目设置为通过代理作业运行。程序包运行正常,没有任何错误,但我所有的行数都记录为 0。当我在调试模式下运行项目时,一切都正常,计数器也正确。因此,我认为这是代理作业的权限问题,但一切都在正常执行,并且正在写入计数器日志,只是没有更新。

我对代理作业执行进行了跟踪(请原谅,它更快),可以看到 sp 调用正在执行,并且传入了 0。因此代理作业、sp 和 ssis 项目正在执行要求它们执行的操作.

要做到的两个关键点:

  1. 我的行计数变量通过脚本任务冒泡到父包,父包执行 sp 来记录行计数。但由于它在调试模式下工作,我认为这部分没问题。
  2. 我已将属性 ProtectionLevel 设置为 EncryptSensitiveWithPassword。这是我第一次使用此属性值,我认为当从代理作业执行项目时,它可能会阻止脚本任务中的代码运行。

有人可以就此提供一些建议吗?为什么代理作业执行不会记录行计数,但调试模式会?如果此属性设置阻止脚本任务运行,我该如何启用它?

提前感谢您提供的任何帮助。

编辑:

我不知道这是否有任何相关性,但这个项目是在开发服务器上构建的,并部署到 SSISDB 所在的实时服务器上,代理作业在其中执行。

sql-server sql-server-2016
  • 1 个回答
  • 101 Views
Martin Hope
DimUser
Asked: 2018-07-03 06:14:44 +0800 CST

将 DAX OpenQuery 输出链接到 SQL Server 临时表

  • 0

我想将表格模型中的度量记录为 KPI,并将值存储在 SQL Server 的表中。

我已经创建了一个从我的 SQL Server 实例到我的 SSAS 实例的链接服务器。我已经编写了一个存储过程来通过 执行 DAX 代码OPENQUERY,目的是将它们存储在临时表中,然后再将它们加载到 KPI 表中。我正在使用临时表,因为我正在查询多个表格模型。

当我尝试使用OPENQUERY输出中的值更新临时表时出现问题。我的OPENQUERY输出当前在 CTE 中,我希望对临时表进行简单的连接,但由于 DAX 查询的输出返回 中的每个列名[ ],当我尝试连接其中一OPENQUERY列时,我收到错误“无效的列名称...”。

例如

UPDATE temp
SET temp.[Current Contract Count] = cte.[Contract Count]
FROM #ServiceZoneKPIs AS temp
INNER JOIN tabular_cte AS cte
ON cte.[Copy of Service Zone Code] = temp.[ServiceZoneAlternateKey]

发生错误是因为 OPENQEURY 输出中不存在“服务区副本”;输出列名称为 [服务区副本]。

我很可能在这里错过了一个简单的技巧?

如何将OPENQUERY返回表格模型数据的输出连接到我的 T-SQL 临时表?

sql-server sql-server-2016
  • 1 个回答
  • 801 Views
Martin Hope
DimUser
Asked: 2018-01-13 06:42:59 +0800 CST

如何从 SSAS 2016 表格模型中动态添加/删除角色成员

  • 0

我正在开发许多表格模型,目前每个模型中分配给角色的用户数量有限。目前,除一、二例外,大部分用户都是所有报告中的“全读”用户。我正在为这些角色中的许多角色实施行级安全性,我现在已经到了这样的地步,在这些模型部署到现场之前,我认为我应该开发一个安全模型,以便能够轻松地在这些角色中添加/删除成员。

我的问题是,如何部署一个允许动态添加和删除用户的模型,而不必每次都部署解决方案。

在我看来,我的选择如下:

  1. 手动执行此操作...不是动态的!
  2. 在 AD 中创建用户组并将用户组添加到角色中。这对于“完全阅读”用户(例如主管)或“经理”角色(例如销售报告的销售经理)来说是可以的,但不适用于将使用行级安全性的用户(例如销售员)。
  3. 创建一个“全局安全”表以添加到模型中,其中包含用于“完全读取”访问权限(例如,Directors 和 Managers)的读取访问权限的“变量”。我还将有另一个安全表,用于保存其他用户的行级安全数据(例如,销售人员过滤器)。然后,模型中的每个角色将实质上使用基于这些安全表的行级安全性。
  4. 使用 TMSL 处理 SSAS 实例中的每个部署,并“createOrReplace”每个存在/需要添加此用户的角色部署......不幸的是我不知道任何 TMSL,所以我不知道这有多难学?

我想保持一个干净的环境,所以当有人在未来查看模型时,他们看不到多年前离开的用户。最终,当有人离开时,他们的 AD 帐户将被停用,因此这不是一个问题,更多的是强迫症。但是,需要添加新成员。

我倾向于选项 3,但以上选项是我唯一的选择吗?有人部署了不同的模型吗?我错过了一些明显的东西吗!?!?!?我希望不是。

在此先感谢您提供任何帮助/提示/建议。

编辑:我也刚刚想到使用 PowerShell 添加/删除用户。根据大卫所说,我可以让我的一个人来维护它。

ssas ssas-2016
  • 1 个回答
  • 1293 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目

    • 12 个回答
  • Marko Smith

    如何让sqlplus的输出出现在一行中?

    • 3 个回答
  • Marko Smith

    选择具有最大日期或最晚日期的日期

    • 3 个回答
  • Marko Smith

    如何列出 PostgreSQL 中的所有模式?

    • 4 个回答
  • Marko Smith

    列出指定表的所有列

    • 5 个回答
  • Marko Smith

    如何在不修改我自己的 tnsnames.ora 的情况下使用 sqlplus 连接到位于另一台主机上的 Oracle 数据库

    • 4 个回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Martin Hope
    Jin 连接到 PostgreSQL 服务器:致命:主机没有 pg_hba.conf 条目 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane 如何列出 PostgreSQL 中的所有模式? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh 为什么事务日志不断增长或空间不足? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland 列出指定表的所有列 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney MySQL 能否合理地对数十亿行执行查询? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx 如何监控大型 .sql 文件的导入进度? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve