我有一个项目涉及将数据库中的数据提取到文本文件中,然后将其提取到Hadoop中。所以我想创建一个shell脚本,NiFi可以自动运行以检查文本文件是否被提取并摄取它,但我需要确保在摄取之前已经提取了整个数据。意思是我需要检查文本文件是否有EOF,我该怎么做?
还没有任何代码,我对编写shell脚本知之甚少。
答案 0 :(得分:1)
创建文件时,请使用其他名称。提取完成后,将其重命名为预期名称。然后,一旦文件存在,另一个进程就可以开始工作了。
答案 1 :(得分:1)
EOF实际上不是放在文本文件中的东西 - 事实上,实际上并没有任何EOF 值。 EOF或文件结束是当您尝试使用没有给出的源的输入时发生的情况。
在文本文件中没有可以查找的通用标记,可以告诉您它们是否完整。您需要让脚本指示何时以某种其他方式提取给定的数据块。有很多可能性;您可以更改文件as choroba suggested的名称,或者您可以创建一个锁定文件并在数据提取完成后将其删除,或者您可以让您的提取程序在结尾处向文件写入一个独特的字节序列,等等。