从 MySQL 导入数据到 Hive 里用 Parquet 格式,靠的是Sqoop这一把好用的老工具。最常见的场景,比如你线上业务跑在 MySQL,离线仓库用的是 Hive,又查询快、压缩好,就适合用 Parquet。

Sqoop 的命令写起来不复杂,像下面这样就能搞定:

sqoop import \
--connect jdbc:mysql://your-mysql-host:3306/yourdb \
--username youruser \
--password yourpass \
--table your_table \
--hive-import \
--hive-table your_hive_table \
--as-parquetfile \
--target-dir /user/hive/warehouse/your_hive_table \
--num-mappers 1

--as-parquetfile 这个参数是关键,它会自动把数据存成 Parquet 格式,还能直接让 Hive 用上。想省事的话可以加 --hive-overwrite,每次导入都覆盖。

导之前最好看看你的 Hive 表结构和 MySQL 字段能不能一一对上,尤其是日期类型和 null 值,容易出问题。还有,MySQL 连接驱动别忘了用 mysql-connector-5.1.39,兼容性比较稳。

有报错?别慌,可以看看这篇报错方法,蛮全的。想了解更多细节,也可以翻翻这些资料:

如果你在搞数据仓库,或者 Hive 查询卡顿,那不妨试试用 Parquet 配合 Sqoop 导入。性能还真挺不错的。