复制时哈希列 table
Hash columns while copying table
我需要 散列 某些列(如 email),同时将 MySQL
tables 复制到 HDFS
使用 Sqoop
.
sqoop
中是否有内置选项?
- 如果没有,如何实现?
EDIT-1
目前我能想到一个非常粗糙的方法来实现这个:passing a SQL
query(而不是table-name)就像跟随sqoop
SELECT
`name`,
SHA1(`email`) AS `email`,
`dob`
FROM
`my_db`.`users`
- 不确定这是否有效[我试过后会更新]
- 即使有效,它(很可能)需要生成特定于基础数据库的
SQL
查询(MySQL
、PostgreSQL
等)
Is there a built-in option in sqoop
?
没有
If not, how can this be achieved?
- Approach-1:使用
SQL
-query,如问题 中所述
- 方法 2:另一种直接的方法是执行两步导入
- 将
sqoop import
转换为 Hive
temp-table
- 从这个 temp table 创建一个新的
Hive
table 并在此过程中执行 hash
ing(一个好的方法是 Hive
CTAS
)
我需要 散列 某些列(如 email),同时将 MySQL
tables 复制到 HDFS
使用 Sqoop
.
sqoop
中是否有内置选项?- 如果没有,如何实现?
EDIT-1
目前我能想到一个非常粗糙的方法来实现这个:passing a SQL
query(而不是table-name)就像跟随sqoop
SELECT
`name`,
SHA1(`email`) AS `email`,
`dob`
FROM
`my_db`.`users`
- 不确定这是否有效[我试过后会更新]
- 即使有效,它(很可能)需要生成特定于基础数据库的
SQL
查询(MySQL
、PostgreSQL
等)
Is there a built-in option in
sqoop
?
没有
If not, how can this be achieved?
- Approach-1:使用
SQL
-query,如问题 中所述
- 方法 2:另一种直接的方法是执行两步导入
- 将
sqoop import
转换为Hive
temp-table - 从这个 temp table 创建一个新的
Hive
table 并在此过程中执行hash
ing(一个好的方法是Hive
CTAS
)
- 将