批量 json 转 sql 文件

本文介绍了如何在Linux和Mac系统下利用shell脚本结合jq命令,将华为云Hive备份的json文件批量转换为sql格式。首先,通过wget或homebrew安装jq,然后编写shell脚本来遍历json文件并转换,最后执行脚本完成转换,下载sql文件进行阅读。
摘要由CSDN通过智能技术生成

问题背景: 华为云平台导出 Hive 备份文件为 json 格式, 阅读体验不好, 因此将其转化为 sql 文件.

解决方式: 使用 shell 脚本 + 开源 jq 命令, 批量完成 json文件 转 sql 文件.

jq : 一个轻量级、命令行的 json 处理器, 参考: jq 官方网站

Linux 系统下步骤:
1.下载 jq , 可使用多种方式进行下载: linux: rpm、wget、yum, Mac: homebrew, win: 官网下载 …
wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64
2.赋予执行权限
mv jq-linux64 /usr/local/bin/jq
chmod +x jq
3.检查 jq 是否安装成功
echo '{"aaa": 0,"bbb":1}' | jq

安装成功则输出:
{
  "aaa": 0,
  "bbb": 1
}
4.编写 shell 脚本, vi json2sql.sh
#! /bin/bash

JQ_EXEC=`which jq`

for files in `find  $1 -name "*.script"`
do
  FILE_PATH=$files
  SQL_PATH=$(echo "${FILE_PATH/.script/.sql}" )
  ${JQ_EXEC} -r .content ${FILE_PATH} > ${SQL_PATH}
  rm -f ${FILE_PATH}
done  
5.将导出的 json 压缩文件上传至 linux 中 /root/scripts/ 并解压, 执行命令
sh json2sql.sh /root/scripts/

至此转换完成, 下载本地阅读即可.


Mac 系统下步骤:
1.homebrew下载: brew install jq
2.验证: echo '{"aaa": 0,"bbb":1}' | jq
3.编写shell脚本,略
4.将导出文件解压至某一目录,执行命令,略

Mac中 遇到问题: 使用 homebrew 下载 jq 时报错

➜  ~ brew install jq
Error: The following directories are not writable by your user:
/usr/local/lib/pkgconfig

You should change the ownership of these directories to your user.
  sudo chown -R $(whoami) /usr/local/lib/pkgconfig

And make sure that your user has write permission.
  chmod u+w /usr/local/lib/pkgconfig

原因: /usr/local/lib/pkgconfig 权限问题

解决方式: 按照命令中提示依次执行即可.

  1. 指定该文件拥有者, -R 表示对目录级连赋权操作
sudo chown -R $(whoami) /usr/local/lib/pkgconfig
  1. 对用户添加写权限
chmod u+w /usr/local/lib/pkgconfig
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值