数据库查询数据导出csv格式文件支持oracle/mysql/hive
[*]支持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 ...
-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对应的表
CharDecOctHex | CharDecOctHex | CharDecOctHex | 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
可以可以,看这参数数量就知道不简单;www 多谢分享! 感谢分享,正需要 python醒神,有一定道理,谢谢分享 谢谢分享,学习下 看了一下,没有看懂。有点复杂。还需要继续努力啊 厉害厉害~ 感谢分享,拿走学习一下! 牛比,这个参数就这么多,很厉害
页:
[1]