使用 SSAS、TFS 和 SSAS 管理团队发展投标报价系统

发布于 2024-08-29 07:51:15 字数 272 浏览 2 评论 0原文

我目前是公司数据仓库和多维数据集的一名 BI 开发人员。我使用 SQL Server 2008、SSAS 和 SSIS 作为我的基本工具包。我使用 Visual Studio +BIDS 和 TFS 作为我的 IDE 和源代码控制。我即将与离岸供应商一起承担多个项目,我担心管理变革。我主要关心的是管理我和离岸团队之间的合并和变更。合并和管理对 SQL 和 SQL 的更改XML 对于一个人来说已经够糟糕了,但是对于多个开发人员来说,这似乎是一场噩梦。知道有时无法避免多个人对同一文件进行更改,对于如何最好地构建开发有什么想法吗?

I am currently a single BI developer over a corporate datawarehouse and cube. I use SQL Server 2008, SSAS, and SSIS as my basic toolkit. I use Visual Studio +BIDS and TFS for my IDE and source control. I am about to take on multiple projects with an offshore vendor and I am worried about managing change. My major concern is manging merges and changes between me and the offshore team. Merging and managing changes to SQL & XML for just one person is bad enough but with multiple developers it seems like a nightmare. Any thoughts on how best to structure development knowing that sometimes there is no way to avoid multiple individuals making changes to the same file?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

逆夏时光 2024-09-05 07:51:15

SSIS、SSAS 和 SSRS 文件不适合合并。它们存储在一个 xml 文件中,该文件发生了巨大的变化 - 即使有微小的变化(例如更改属性) - 因此它实际上变得不可能合并。

因此,不要再考虑在一个文件上进行并行开发。您需要考虑如何实现人们不需要在一个文件上进行并行开发。因此,首先要禁用文件的多重检出。您甚至可能需要考虑启用在结账时获取最新版本的选项。

然后开始思考如何实现人们能够独立工作。这更多的是你构建工作和文件的方式:

  • 给人们他们自己可以工作的区域。一个 SSIS 包仅由 X 在任何给定时刻开发。
  • 制作较小的文件,以便两个人在同一文件中工作所需的更改很小。

我已经向产品团队反馈了 BIDS 不兼容合并的情况。这是一个已知问题,但很难解决。他们不知道什么时候才能真正对这些文件进行并行开发。在此之前,请远离并行开发。

SSIS, SSAS and SSRS files are not merge-friendly. They are stored in an xml file that is changed drastically - even with minor changes (such as changing a property) - so it becomes really impossible to merge.

So stop thinking about parallel development on one file. You need to think how you can achieve that people are not need to do parallel development on one file. So start with disabling the multiple checkout of a file. You might even want to consider to enable the option to get the latest version on a checkout.

Then start thinking how you can achieve that people can work independent. This is more in the way you structure the work and files:

  • Give people their own area they can work on. One SSIS package is only developed by person X at any given moment in time.
  • Make smaller files so the change that two people need to work in the same file is small.

I have given feedback to the product team of the imcompatability of BIDS to merge. It is a known issue, but will be hard to tackle. They don't know when it will be possible to really do parallel development on these files. Until then keep away from parallel development.

甜警司 2024-09-05 07:51:15

正如 Ewald Hofman 提到的,SSAS 和 SSIS 不适合合并。

在一种环境中,我解决了如下问题:

  • 仅在必要时才使用 SSIS(模糊算法或类似算法)。尽可能频繁地用 SQL 代码替换 SSIS 包(请参阅链接服务器 例如用于数据同步和 MEARGE 命令用于维度/事实表创建)。
  • 按如下方式构建数据仓库结构:
  • 构建 2 个数据库,一个用于来自源系统的“原始源数据”,另一个(“阶段”数据库)用于维度和事实视图和表,
  • 使用可以部署整个“阶段”的过程" 数据库
  • 将“阶段”数据库的结构放入存储库
  • 构建一个 C# 应用程序,通过 AMO API(我知道,一开始这是一项艰巨的工作,但它是值得的 - 想想你会得到什么 - 看看下面的优点)

  • 添加阶段数据库并将 C# 应用程序添加到您的存储库(TFS/Git 等)

该结构的优点:

  • 您拥有一个可合并的结构,您可以 放入您的存储库中
  • 将您正在使用的 AMO API
  • ,您可以自动生成新分区,
  • 您可以使用程序来自动化并将度量组克隆到不同的多维数据集(我认为有时这是一个很大的好处!)
  • 您可以外包您的翻译和轻松导入它(立方体设计器可能不是最好的翻译器)

缺点:

  • 供应商可能不会适应该结构
  • 您必须支付更多费用(因为更高的技能要求或教他您的个人结构)
  • 您可能需要超过新语言 C# - 如果您还没有

结论:

  • 有可能获得一个合并友好的环境,
  • 您将失去良好的点击并运行工具 BIDS - 但将进入高度自动化功能
  • 外包 的过程由于高度个性化可能无利可图

As Ewald Hofman mentioned, SSAS and SSIS is not merge-friendly.

In one environment I worked solved the problem as follows:

  • do only use SSIS when you have to (fuzz algorithm or something similar). Replace SSIS packages as often as you can with SQL code (see Linked Server for datasync. and MEARGE Command for dimension/fact-table-creating for instance).
  • build your data warehouse structure as follows:
  • build 2 databases, one for the "raw source data" from the source systems and one (the "stage" database) for the dimension and fact views and tables
  • use procedures that can deploy the whole "stage" database
  • put the structure for the "stage" database into your Repository
  • build a C# application that build your dimensions and cubes via the AMO API (I know, that's a tough job at the beginning but it is it worth - think on what you gain - Look at the Pros below )

  • add the stage database and the C# application to your Repository (TFS/Git etc.)

Pros of that structure:

  • you have a merge-able structure you can put in your Repository
  • you are using the AMO API witch has
  • you can automate the generation of new partitions
  • you can use procedures to automate and clone measure groups to different cubes (what I think is sometimes a big benefit!)
  • you could outsource your translation and import it easily (the cube designer is probably not the best translator)

Cons:

  • the vendor would probably not adapt that structure
  • you have to pay more (because of either higher skill requirements or for teaching him your individual structure)
  • you probably need knowledge over a new language C# - if you don't already have

Conclusion:

  • there are possibilities to get a merge-friendly environment
  • you will get lost of nice click-and-run tools f.e. BIDS - but will get into process of high automation functionality
  • outsourcing will be maybe unprofitable because of high individualization
但可醉心 2024-09-05 07:51:15

只要两个团队都使用出价和 TFS,这就不成问题。

假设您的 tsql 代码在每个对象的单个文件中签入源代码管理,合并 TSQL 代码是直接的,因为它是基于文本的。我发现 VSTS 数据库项目对此有帮助。

合并 SSIS 和 MSAS 的基于 XML 的源文件可能会很麻烦,如下所示。为了减轻一些痛苦,我发现将每个包限制为单个数据流或逻辑工作单元有助于减少开发人员对包的争用。然后,我从一个或多个主包中调用这些包。我还尝试使用存储过程、视图或 udfs 将所有 tsql 源查询外部化,以便进一步减少编辑包的需要。使用配置文件和变量在较小程度上也有帮助。

MSSAS 立方体稍微坚硬一些。我最好的建议是研究第 3 方 xml 差异工具。我已经能够使用基于标准文本的工具成功合并小的更改,但这可能是一项艰巨的任务。

As long as both teams are using bids and TFS this should not be a problem.

assuming that your tsql code is checked in to source control in a single file per object, merging TSQL code is straight forward since it is text based. I have found the VSTS Database projects help with this.

Merging the XML based source files of SSIS and the MSAS can be cumbersome as you indicate below. to alleviate some of the pain, I find that keeping each package limited to a single dataflow or logical unit of work helps reduce developer contention on packages. I then call these packages from one or more master packages. I also try to externalize all of my tsql source queries using sprocs, view or udfs so that the need to edit the package is further reduced. using configuration files and variables also helps to a smaller extent.

MSSAS cubes are a little bit tougher. My best suggestion is to look into a 3rd party xml differencing tool. I have been able to successfully merge small changes use the standard text based tools but it can be a daunting task.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文