介绍了一种利用 Sqoop 将 Phoenix 数据迁移至 HDFS 的高效方案。该方案通过指定 Phoenix JDBC 驱动、连接信息、目标路径等参数,实现了数据的增量抽取。其中,--query 参数支持用户自定义 SQL 查询语句,以满足灵活的数据筛选需求。例如,以下命令演示了如何将 AQSS_m 表中 cs_data_time 字段为 2020-07-24 的数据迁移至 HDFS:

sqoop import --driver org.apache.phoenix.jdbc.PhoenixDriver --connect jdbc:phoenix:192.168.111.45:2181 --query "select cs_mine_code, cs_data_time,ss_station_code,ss_transducer_state,ss_analog_value from AQSS_m WHERE substr(cs_data_time,0,10)='2020-07-24' and $CONDITIONS" --target-dir /origin_data/phoenix/dwd/aqss_m/2020-07-24/ --delete-target-dir --num-mappers 1 --direct --fields-terminated-by ',' 

该方案利用 --delete-target-dir 参数确保每次迁移前清空目标目录,保证数据的一致性。同时,--num-mappers--direct 参数的设置,分别用于控制并行度和数据传输方式,从而提高数据迁移效率。