吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2755|回复: 9
收起左侧

[Python 转载] 数据库查询数据导出csv格式文件支持oracle/mysql/hive

[复制链接]
jiyefa 发表于 2021-9-30 17:31
  • 支持  oracle、mysql、hive
  • 支持文件和命令行传递数据库链接配置信息
  • 支持文件和命令行传递sql
  • 支持静态变量、动态变量参数
  • 支持压缩切割、重命名、md5


使用示例:
python /home/test/util/db2csv.py \
-a "/home/test/util/resource.config" \
-i 2 \
-s "/data/sql/001.sql" \
-d "/data/001/" \
-f 'WXX_#{vdate}.csv' \
-c "date|${time}" \
-v 'vdate|(datetime.datetime.strptime("#{date}", "%Y%m%d")).strftime("%y%m%d")' \
-b "import datetime" \
-m \
-z \
-k "CDBSDDW5G02001A#{vdate}1" \
-q "/user/hive/export/001" \
-w "/data/bak"



【帮助】
    python db2csv.py [option] ...
    -t,--dbType(二选一(传数据库类型、链接地址、用户名、密码或者传配置文件路径、数据库名称),
                数据库类型包括oracle、mysql、hive)
    -l,--dbUrl(二选一(传数据库类型、链接地址、用户名、密码或者传配置文件路径、数据库名称),
               数据库链接地址,例如:192.168.0.1:3306/database)
    -u,--dbUser(二选一(传数据库类型、链接地址、用户名、密码或者传配置文件路径、数据库名称),
                数据库用户名)
    -p,--dbPassword(二选一(传数据库类型、链接地址、用户名、密码或者传配置文件路径、数据库名称),
                    数据库密码)
    -a,--dbFile(二选一(传数据库类型、链接地址、用户名、密码或者传数据库的配置文件路径),数据库配置文件路径,
                文件行格式:{"dbId":"1","dbType":"mysql","dbUrl":"192.168.0.1:3306/database",
                "dbUser":"root","dbPassword":"123456"})
    -i,--dbId(二选一(传数据库类型、链接地址、用户名、密码或者传数据库的配置文件路径),
                数据库编号)
    -e,--sql(二选一(SQL语句或SQL文件),查询SQL语句,参数以#{parameterName}表示)
    -s,--sqlFile(二选一(SQL语句或SQL文件),查询SQL文件,参数以#{parameterName}表示)
    -d,--exportPath(必选,导出CSV文件所在的目录路径,可指定参数,例如“/root/#{parameterName}/”)
    -f,--fileName(必选,CSV文件名,可指定参数,例如“file_#{parameterName}.csv”)
    -c,--constant(非必选,常量参数,竖线分割参数名和参数值,可以多次传,
                  用于替换SQL、目录路径、文件名的参数,例如:today|20210801)
    -v,--variable(非必选,变量参数,竖线分割参数名和参数值,可以多次传,
                  用于替换SQL、目录路径、文件名的参数,传python命令代码,可引用其他参数,例如:
                  yesterday|(datetime.datetime.strptime('#{today}', "%Y%m%d") + datetime.timedelta(days = -1)).strftime("%Y%m%d"))
    -b,--before(非必选,前置代码,比如导入包等python命令)
    -r,--header(非必选,表头,默认不显示表头)
    -o,--separator(非必选,分隔符(输入ascii对应的十进制整数),默认(soh)即0x01符号分割)
    -m,--md5(非必选,是否生成md5校验文件,默认否)
    -z,--bzip(非必选,是否采用bzip2压缩并分割文件,默认否)
    -k,--splitFile(非必选,分割文件最终命名)
    -q,--hdfsDir(非必选,hive导数临时目录)
    -v,--mvDir(非必选,文件移动目录)
    -h,--help(帮助)

    分隔符大全:
    ascii对应的表
    Char  Dec  Oct  Hex | Char  Dec  Oct  Hex | Char  Dec  Oct  Hex | Char Dec Oct Hex
    -----------------------------------------------------------------------------------
    (nul)   0 0000 0x00 | (sp)   32 0040 0x20 | @     64 0100 0x40 | `    96 0140 0x60
    (soh)   1 0001 0x01 | !      33 0041 0x21 | A     65 0101 0x41 | a    97 0141 0x61
    (stx)   2 0002 0x02 | "      34 0042 0x22 | B     66 0102 0x42 | b    98 0142 0x62
    (etx)   3 0003 0x03 | #      35 0043 0x23 | C     67 0103 0x43 | c    99 0143 0x63
    (eot)   4 0004 0x04 | $      36 0044 0x24 | D     68 0104 0x44 | d    100 0144 0x64
    (enq)   5 0005 0x05 | %      37 0045 0x25 | E     69 0105 0x45 | e    101 0145 0x65
    (ack)   6 0006 0x06 | &      38 0046 0x26 | F     70 0106 0x46 | f    102 0146 0x66
    (bel)   7 0007 0x07 | '      39 0047 0x27 | G     71 0107 0x47 | g    103 0147 0x67
    (bs)    8 0010 0x08 | (      40 0050 0x28 | H     72 0110 0x48 | h    104 0150 0x68
    (ht)    9 0011 0x09 | )      41 0051 0x29 | I     73 0111 0x49 | i    105 0151 0x69
    (nl)   10 0012 0x0a | *      42 0052 0x2a | J     74 0112 0x4a | j    106 0152 0x6a
    (vt)   11 0013 0x0b | +      43 0053 0x2b | K     75 0113 0x4b | k    107 0153 0x6b
    (np)   12 0014 0x0c | ,      44 0054 0x2c | L     76 0114 0x4c | l    108 0154 0x6c
    (cr)   13 0015 0x0d | -      45 0055 0x2d | M     77 0115 0x4d | m    109 0155 0x6d
    (so)   14 0016 0x0e | .      46 0056 0x2e | N     78 0116 0x4e | n    110 0156 0x6e
    (si)   15 0017 0x0f | /      47 0057 0x2f | O     79 0117 0x4f | o    111 0157 0x6f
    (dle)  16 0020 0x10 | 0      48 0060 0x30 | P     80 0120 0x50 | p    112 0160 0x70
    (dc1)  17 0021 0x11 | 1      49 0061 0x31 | Q     81 0121 0x51 | q    113 0161 0x71
    (dc2)  18 0022 0x12 | 2      50 0062 0x32 | R     82 0122 0x52 | r    114 0162 0x72
    (dc3)  19 0023 0x13 | 3      51 0063 0x33 | S     83 0123 0x53 | s    115 0163 0x73
    (dc4)  20 0024 0x14 | 4      52 0064 0x34 | T     84 0124 0x54 | t    116 0164 0x74
    (nak)  21 0025 0x15 | 5      53 0065 0x35 | U     85 0125 0x55 | u    117 0165 0x75
    (syn)  22 0026 0x16 | 6      54 0066 0x36 | V     86 0126 0x56 | v    118 0166 0x76
    (etb)  23 0027 0x17 | 7      55 0067 0x37 | W     87 0127 0x57 | w    119 0167 0x77
    (can)  24 0030 0x18 | 8      56 0070 0x38 | X     88 0130 0x58 | x    120 0170 0x78
    (em)   25 0031 0x19 | 9      57 0071 0x39 | Y     89 0131 0x59 | y    121 0171 0x79
    (sub)  26 0032 0x1a | :      58 0072 0x3a | Z     90 0132 0x5a | z    122 0172 0x7a
    (esc)  27 0033 0x1b | ;      59 0073 0x3b | [     91 0133 0x5b | {    123 0173 0x7b
    (fs)   28 0034 0x1c | <      60 0074 0x3c | \     92 0134 0x5c | |    124 0174 0x7c
    (gs)   29 0035 0x1d | =      61 0075 0x3d | ]     93 0135 0x5d | }    125 0175 0x7d
    (rs)   30 0036 0x1e | >      62 0076 0x3e | ^     94 0136 0x5e | ~    126 0176 0x7e
    (us)   31 0037 0x1f | ?      63 0077 0x3f | _     95 0137 0x5f | (del) 127 0177 0x7f
1.png

db2csv.zip

5.63 KB, 下载次数: 35, 下载积分: 吾爱币 -1 CB

免费评分

参与人数 3吾爱币 +3 热心值 +3 收起 理由
haidibingjing + 1 + 1 谢谢@Thanks!
小小的石头13 + 1 + 1 我很赞同!
secondDog + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

sapin 发表于 2021-9-30 21:11
可以可以,看这参数数量就知道不简单
fkcp 发表于 2021-9-30 21:48
小小的石头13 发表于 2021-9-30 22:10
lcg2014 发表于 2021-10-10 12:27
python醒神,有一定道理,谢谢分享
shlboliqiao 发表于 2021-10-11 12:32
谢谢分享,学习下
小白2021 发表于 2021-10-13 21:40
看了一下,没有看懂。有点复杂。还需要继续努力啊
barrientos 发表于 2021-10-18 22:35
厉害厉害~
EhziyiL 发表于 2022-9-5 10:28
感谢分享,拿走学习一下!
nauh 发表于 2022-9-10 18:15
牛比,这个参数就这么多,很厉害
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 03:30

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表