我正在开发一个项目,我需要使用ETL过程将数据加载到数据仓库中。我有csv,非结构化和平面文件格式的数据。我正在考虑使用shell脚本来执行ETL过程。我对bash shell和KornShell(ksh)都知之甚少,但我在ETL过程中非常新。所以我的问题是ETL过程的更好选择是什么。我是否应该使用Bash Shell或KornShell?
非常感谢用户体验过ETL过程和shell脚本的答案。
提前感谢。
答案 0 :(得分:5)
通常,我的ETL进程使用SQL语句进行数据库内转换,因此它们实际上是“ELT”进程。 shell只是用作移动文件,执行数据加载和工具的工具。提取并执行SQL语句。如果您的DW系统功能足够强大,那么它通常是进行转换工作的最佳位置,除非您设置的系统位于EDW之外且可以进行数据转换。
我所描述的这种ELT过程的shell的选择实际上是维护之一。当你离开时谁会支持这个?公司有很多人知道bash,但只有一个知道KSH吗?或者它是99%的.NET商店?然后我建议你在小C#控制台应用程序中编写你的ETL。当您不使用真正的“ETL”工具时,选择用于执行ETL的语言应该关注这些因素,而不是“最佳”语言。
答案 1 :(得分:4)
Korn稍微便携一些。 Bash更强大。 “Bourne shell”是一个很不错的共同点。
在所有条件相同的情况下,我建议使用“bash”。特别是如果您的平台是Linux。
恕我直言..
PS:
“bash”这个名字代表“Bourne Again Shell”,它是来自原始“Bourne”外壳的双关语。 Bourne脚本与bash兼容,但反之亦然。