如何识别从 RDBMS 到 Hive External table 的新列?
How to recognize new columns from RDBMS to Hive External table?
我在 HDFS 中有一个 Hive External table X。来自 RDBMS 的文件将不断进入 table X 的文件夹位置。
上周有一个新列添加到 RDBMS,文件进入外部 table 包含新列的数据。
我知道在这种情况下我应该向外部 Hive 添加一个新列 table。
但是,如何防止带有新列的文件进入我的外部文件夹??
或者至少我如何识别新专栏即将到来?
任何一个来源团队都需要与您沟通他们正在进行的更改。如果您的企业有变更控制和审查委员会,您需要参与您从中获取数据的应用程序的变更控制审查。
如果无法进行更改控制,作为数据集成过程的一部分,您需要检查数据库表是否有任何更改。如果有更改,则流程应通知更改。
如果您不需要担心新列,则必须使用 "select from " 从源中获取数据,这不会为新列获取数据。
最后,这取决于你想如何解决它。没有开箱即用的解决方案,这是典型的数据集成问题,您需要根据您的组织实践定制解决方案。
您可以编写一个 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."
我在 HDFS 中有一个 Hive External table X。来自 RDBMS 的文件将不断进入 table X 的文件夹位置。
上周有一个新列添加到 RDBMS,文件进入外部 table 包含新列的数据。
我知道在这种情况下我应该向外部 Hive 添加一个新列 table。
但是,如何防止带有新列的文件进入我的外部文件夹??
或者至少我如何识别新专栏即将到来?
任何一个来源团队都需要与您沟通他们正在进行的更改。如果您的企业有变更控制和审查委员会,您需要参与您从中获取数据的应用程序的变更控制审查。
如果无法进行更改控制,作为数据集成过程的一部分,您需要检查数据库表是否有任何更改。如果有更改,则流程应通知更改。
如果您不需要担心新列,则必须使用 "select from " 从源中获取数据,这不会为新列获取数据。
最后,这取决于你想如何解决它。没有开箱即用的解决方案,这是典型的数据集成问题,您需要根据您的组织实践定制解决方案。
您可以编写一个 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."