我在hdfs中有一个hive外部表x。rdbms中的文件将不断到达表x的文件夹位置。上周,rdbms中添加了一个新列,这些文件与新列的数据一起进入了外部表。我知道在这种情况下应该向配置单元外部表添加一个新列。但是,如何防止包含新列的文件进入我的外部文件夹。??或者至少我怎么知道新专栏要来了?
9rygscc11#
您可以编写一个bash脚本来检查当前文件中的列数(我假设您的文件是按日期分区的)。
expected_n_columns=10 DATE=`date +%Y-%m-%d` n_commas=`hadoop fs -cat /X/$DATE/* | head -n 1 | tr -cd , | wc -c` n_columns=`expr $n_commas + 1` echo "today's file had $n_columns columns."
wsewodh22#
任何一个源团队都需要与您沟通他们正在进行的更改。如果您的企业有变更控制和评审委员会,那么您需要成为从中获取数据的应用程序的变更控制评审的一部分。如果无法进行更改控制,则作为数据集成过程的一部分,您需要检查数据库表中的任何更改。如果有更改,则流程应通知更改。如果您不需要担心新列,那么您必须使用“select from”从源获取数据,这将不会获取新列的数据。最后,这取决于你想如何处理它。没有现成的解决方案,这是典型的数据集成问题,您需要根据您的组织实践定制解决方案。
2条答案
按热度按时间9rygscc11#
您可以编写一个bash脚本来检查当前文件中的列数(我假设您的文件是按日期分区的)。
wsewodh22#
任何一个源团队都需要与您沟通他们正在进行的更改。如果您的企业有变更控制和评审委员会,那么您需要成为从中获取数据的应用程序的变更控制评审的一部分。
如果无法进行更改控制,则作为数据集成过程的一部分,您需要检查数据库表中的任何更改。如果有更改,则流程应通知更改。
如果您不需要担心新列,那么您必须使用“select from”从源获取数据,这将不会获取新列的数据。
最后,这取决于你想如何处理它。没有现成的解决方案,这是典型的数据集成问题,您需要根据您的组织实践定制解决方案。