我有一个具有2.2亿条记录的Hana表。 (大小为12GB)。 当前,我们使用Informatica对my_table执行select * 并将管道分隔的数据导出到文件中。该文件大小最多可关闭100GB,大约需要1.5小时才能执行该作业。 可以通过hana中的export命令来实现吗? 并且可以使用导出命令来导出“ |”将表文件分隔到另一个服务器?
答案 0 :(得分:0)
我根本不熟悉 Informatica,但是 EXPORT 命令可以很好地满足您的所有其他要求。当然,您可以让 HANA 为表生成这样的输出文件。如果你看:
SAP HANA SQL and System Views Reference - EXPORT Statement (Data Import Export)
您会看到您可以导出为 csv,这几乎是一个带分隔符的文本格式文件,您可以选择导出目标位置、分隔符和行分隔符。
您需要的文档中的条款是:
<块引用>记录由
分隔字段由
分隔EXPORT INTO '/tmp/targetfolder/targetfile.csv' from "<schema>"."<table_name>" WITH FIELD DELIMITED BY '|' RECORD DELIMITED BY ';';
这将产生一个带有 | 的文件分隔列值和;分隔行。
关于您关于导出目标的问题 - 这是一个正常的文件路径,因此您可以使用 HANA 服务器上可访问的任何文件路径。
顺便说一句。根据您要导出的表的技术细节以及包含它的 HANA 服务器的功能/配置,并行导出多个线程可能是有意义的。如果没有列出所有细节(那会太多),您可能想要使用导出的线程数来加快速度。为此,您还需要 1 个关键字 --> 线程,例如
EXPORT INTO '/tmp/targetfolder/targetfile.csv' from "<schema>"."<table_name>" WITH FIELD DELIMITED BY '|' RECORD DELIMITED BY ';' THREADS 12;
让我分享我的快速而肮脏的例子的数字,只是为了给你一个非常粗略的想法。为了获得对您的上下文有用的结果,您确实需要使用您的表、服务器和文件共享来评估这一点。
记录:~7200万 .csv 文件:19,7 GB
1 个线程 - 22:14 分钟 6 个线程 - 06:23 分钟 12 个线程 - 06:04 分钟