【问题标题】:ASP.NET Automated & Manual ETL ProcessASP.NET 自动和手动 ETL 过程
【发布时间】:2010-10-28 18:57:39
【问题描述】:

这是一个有趣的问题。我有一个用 c# 编写的 ETL 脚本,我一直在定期手动运行。它用于更新我的网络应用程序的数据库。

我想自动化 ETL 流程并为 Web 应用管理员创建一个界面以手动启动 ETL 流程。

我可以让 sql server 按计划启动 ETL 过程并在网页上实现一个按钮或其他东西来做同样的事情,但我不想把我的代码放在两个不同的地方,因为我不当它改变时,不想在 2 个地方更新它。但我不知道如何让我的网络应用程序告诉 SQL Server 手动启动计划进程。这个可以吗?

我可以通过某种方式在 Web 应用程序本身中实现调度,但现在大多数人都熟悉尝试这样做时所面临的问题(应用程序可能在某些时候没有运行,必须等待请求启动进程(没有一些诡计))。另外,由于 ETL 过程需要一段时间,我不想让一些可怜的最终用户等待响应,所以它肯定必须使用新线程。

我还能做什么?你会怎么做?

【问题讨论】:

    标签: c# .net asp.net database etl


    【解决方案1】:

    您提到您正在使用 SQL Server。它是什么版本? SQL Server Integration Services(该平台的成熟 ETL 工具)是否适合您?如果您想要预定的提取、转换和加载作业,SSIS 是 Microsoft 平台上的一个很好的工具,并且包含在大多数 SQL Server 许可证中。

    或者,查看Quartz

    【讨论】:

    • 我同意这一点。为什么不使用 SSIS 来处理您的 ETL 流程?
    • 因为我必须学习如何使用它。我已经编写了代码来做我需要做的事情。另外,因为来源是 UniData。我只是认为不使用它会更容易。我很想在某个时候学习如何使用 SSIS,但不是为了这个。我太忙了,没时间刮牦牛。
    • 够了。我明白太忙了。但是,您会发现 SSIS 确实解决了您提出的问题。您必须在使用当前方法解决问题的成本与使用最适合工作的工具(包括学习曲线)解决问题之间取得平衡。
    • 附带说明一下,您是否调查过在您的 Web 服务器上运行一个封装了 C# 功能的 Windows 服务?它内部可以有一个 Quartz 调度器,可以为您提供可配置的调度和作业流程。
    • 以前没听说过石英。我去看看。
    猜你喜欢
    • 1970-01-01
    • 2023-03-04
    • 2020-06-09
    • 1970-01-01
    • 2012-03-22
    • 2019-06-18
    • 2016-06-07
    • 2011-12-17
    • 1970-01-01
    相关资源
    最近更新 更多