2

我正在做一个项目,我需要使用 ETL 过程将数据加载到数据仓库中。我有 csv、非结构化和平面文件格式的数据。我正在考虑使用 shell 脚本来执行 ETL 过程。我对 bash shell 和 KornShell (ksh) 知之甚少,但我在 ETL 过程中非常陌生。所以我的问题是 ETL 过程的更好选择是什么。我应该使用 Bash Shell 还是 KornShell?

非常感谢使用 ETL 过程和 shell 脚本的用户的回答。

预先感谢。

4

2 回答 2

4

通常,我的 ETL 流程使用 SQL 语句进行数据库内转换,因此它们实际上是“ELT”流程。shell 只是用作移动文件、执行数据加载和提取以及执行 SQL 语句的工具。如果您的 DW 位于一个足够强大的系统上,那么它通常是进行转换工作的最佳位置,除非您打算让一个系统位于 EDW 之外进行数据转换。

我所描述的这种 ELT 进程的 shell 选择实际上是一种维护。当你离开时,谁会支持这个?公司是否有很多人知道 bash,但只有一个人知道 KSH?还是 99% 是 .NET 商店?然后我建议在小的 C# 控制台应用程序中编写您的 ETL。当您不使用真正的“ETL”工具时,选择用于执行 ETL 的语言应该关注这些因素,而不是“最佳”语言。

于 2013-02-05T15:54:00.847 回答
3

Korn 更便携。Bash 更强大。“Bourne shell”是一个很好的最小公分母。

在所有条件相同的情况下,我建议使用“bash”。特别是如果您的平台是 Linux。

恕我直言 ..

PS:

“bash”这个名字代表“Bourne Again Shell”,这是对原始“Bourne”shell 遗产的双关语。Bourne 脚本与 bash 兼容,但反之则不然。

于 2013-02-05T06:27:05.460 回答