单元测试 Sqoop 应用程序
Unit Testing Sqoop Applications
我正在使用 SQOOP 作为一种技术将大量数据从 mysql 下载到 HDFS。有时,我需要在sqoop中写一些特殊的查询来下载数据。
我对 sqoop 感到的一个问题是它实际上无法测试。绝对没有对 sqoop 进行单元测试的指南或技术。
如果有人在用sqoop做数据整合。您如何测试您的 sqoop 应用程序?
Afaif目前还没有sqoop的单元测试框架,你可以按照下面的方法
1) 安排一个 sqoop 评估作业,它将有源查询以显示源 table.
的输出
$ sqoop eval --connect jdbc:mysql://db.example.com/corp \
--query "SELECT * FROM employees LIMIT 10"
2)运行对应的hive查询或hdfs shell命令获取sqoop完成后的数据或计数
如果您不通过 --query
使用自由格式查询,您可以使用内置 --validate
选项来匹配源 table 和 HDFS 中的记录数。不幸的是,它会在 MS SQL 中的大 table 上失败(记录计数>int 容量),因为 Sqoop 不知道 count_big()
。
我正在使用 SQOOP 作为一种技术将大量数据从 mysql 下载到 HDFS。有时,我需要在sqoop中写一些特殊的查询来下载数据。
我对 sqoop 感到的一个问题是它实际上无法测试。绝对没有对 sqoop 进行单元测试的指南或技术。
如果有人在用sqoop做数据整合。您如何测试您的 sqoop 应用程序?
Afaif目前还没有sqoop的单元测试框架,你可以按照下面的方法
1) 安排一个 sqoop 评估作业,它将有源查询以显示源 table.
的输出$ sqoop eval --connect jdbc:mysql://db.example.com/corp \
--query "SELECT * FROM employees LIMIT 10"
2)运行对应的hive查询或hdfs shell命令获取sqoop完成后的数据或计数
如果您不通过 --query
使用自由格式查询,您可以使用内置 --validate
选项来匹配源 table 和 HDFS 中的记录数。不幸的是,它会在 MS SQL 中的大 table 上失败(记录计数>int 容量),因为 Sqoop 不知道 count_big()
。