一个日牯子
Home
Tags
GitHub
Author
2020-05-04
SVG
HTML
PDF
导
入
到
M
y
S
Q
l
1
一
个
简
单
的
E
T
L
程
序
小
实
现
闲
话
编
程
C
o
n
t
e
n
t
s
还
原
原
始
数
据
库
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
导
入
到
M
y
S
Q
l
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
整
体
架
构
这
两
天
闲
着
没
事
准
备
玩
一
下
社
工
库
,
网
上
有
很
多
以
前
的
社
工
库
(
这
些
都
可
以
下
载
到
,
但
是
实
际
上
已
经
没
有
什
么
太
大
的
价
值
了
,
因
为
暴
露
时
间
太
久
,
以
及
相
关
的
网
站
都
已
经
做
了
处
理
,
所
以
别
指
望
能
够
找
到
什
么
有
价
值
的
东
西
)
,
通
过
社
工
库
可
以
了
解
到
的
一
个
实
际
的
数
据
就
是
,
用
户
的
设
置
的
密
码
大
都
是
什
么
样
子
的
。
我
准
备
看
一
下
搜
云
社
工
库
,
这
个
库
大
概
亿
多
条
数
据
,
主
要
目
的
是
实
践
一
下
大
量
数
据
的
处
理
。
还
原
原
始
数
据
库
这
个
库
(
下
载
地
址
请
自
行
搜
索
)
下
载
完
成
之
后
是
一
个
1
.
b
a
k
(
的
备
份
文
件
)
文
件
,
接
近
,
网
上
有
详
细
的
教
程
如
何
导
入
,
总
结
起
来
大
致
如
下
安
装
(
标
准
版
或
者
更
高
)
将
复
制
到
的
实
例
备
份
目
录
,
否
则
会
无
法
导
入
因
为
还
原
后
的
数
据
库
占
用
空
间
在
,
所
以
要
保
证
数
据
库
的
存
储
磁
盘
空
间
足
够
还
原
完
成
之
后
即
可
得
到
一
个
的
数
据
表
,
里
面
有
条
数
据
。
导
入
到
M
y
S
Q
l
因
为
最
终
希
望
能
够
在
中
使
用
数
据
,
所
以
还
得
将
数
据
迁
移
到
中
。
最
初
的
想
法
是
直
接
将
数
据
导
出
到
,
然
后
再
通
过
导
入
。
但
是
这
个
方
法
尝
试
了
几
次
之
后
发
现
一
些
问
题
:
数
据
中
可
能
存
在
一
些
非
可
见
字
符
,
导
致
导
出
后
的
格
式
混
乱
莫
名
其
妙
的
问
题
无
法
解
析
索
性
就
直
接
放
弃
了
这
种
方
式
,
而
是
通
过
手
写
来
完
成
迁
移
。
于
是
设
计
了
一
个
简
陋
的
程
序
,
还
挺
有
意
思
的
。
整
体
架
构
的
主
要
目
的
是
把
数
据
从
一
个
地
方
转
移
迁
移
到
另
一
个
地
方
,
这
其
中
可
能
进
行
一
些
其
他
的
操
作
比
如
清
洗
或
者
格
式
转
换
。
整
体
的
思
路
是
这
样
的
:
有
一
个
(
源
数
据
)
和
(
目
标
数
据
源
)
执
行
的
时
候
从
源
数
据
查
询
数
据
,
然
后
保
存
到
目
标
数
据
库
中
,
为
了
提
高
效
率
,
每
次
会
查
询
一
批
数
据
,
保
存
的
时
候
也
会
一
批
一
批
保
存
为
进
一
步
提
高
性
能
,
可
以
设
定
多
个
线
程
同
时
处
理
,
为
了
避
免
冲
突
,
每
个
线
程
不
会
处
理
同
一
条
数
据
,
是
互
斥
的
导
入
到
M
y
S
Q
l
2
E
T
L
E
n
g
i
n
e
p
u
b
l
i
c
c
l
a
s
s
E
n
g
i
n
e
{
p
r
i
v
a
t
e
s
t
a
t
i
c
f
i
n
a
l
L
o
g
g
e
r
l
o
g
g
e
r
=
L
o
g
g
e
r
F
a
c
t
o
r
y
.
g
e
t
L
o
g
g
e
r
(
E
n
g
i
n
e
.
c
l
a
s
s
)
;
p
r
i
v
a
t
e
f
i
n
a
l
i
n
t
t
h
r
e
a
d
s
;
p
r
i
v
a
t
e
f
i
n
a
l
i
n
t
t
o
t
a
l
C
o
u
n
t
;
p
r
i
v
a
t
e
f
i
n
a
l
i
n
t
b
a
t
c
h
S
i
z
e
;
p
r
i
v
a
t
e
f
i
n
a
l
H
i
k
a
r
i
D
a
t
a
S
o
u
r
c
e
s
o
u
r
c
e
;
p
r
i
v
a
t
e
f
i
n
a
l
H
i
k
a
r
i
D
a
t
a
S
o
u
r
c
e
d
e
s
t
i
n
a
t
i
o
n
;
p
r
i
v
a
t
e
f
i
n
a
l
A
t
o
m
i
c
L
o
n
g
r
a
n
g
e
S
e
l
e
c
t
o
r
=
n
e
w
A
t
o
m
i
c
L
o
n
g
(
0
)
;
p
r
i
v
a
t
e
f
i
n
a
l
L
i
s
t
<
T
h
r
e
a
d
>
t
a
s
k
s
=
n
e
w
A
r
r
a
y
L
i
s
t
<
>
(
)
;
p
u
b
l
i
c
E
n
g
i
n
e
(
i
n
t
t
h
r
e
a
d
s
,
i
n
t
t
o
t
a
l
C
o
u
n
t
,
i
n
t
b
a
t
c
h
S
i
z
e
)
{
t
h
i
s
.
t
h
r
e
a
d
s
=
t
h
r
e
a
d
s
;
t
h
i
s
.
t
o
t
a
l
C
o
u
n
t
=
t
o
t
a
l
C
o
u
n
t
;
t
h
i
s
.
b
a
t
c
h
S
i
z
e
=
b
a
t
c
h
S
i
z
e
;
t
h
i
s
.
s
o
u
r
c
e
=
n
e
w
H
i
k
a
r
i
D
a
t
a
S
o
u
r
c
e
(
n
e
w
H
i
k
a
r
i
C
o
n
f
i
g
(
"
s
r
c
/
m
a
i
n
/
r
e
s
o
u
r
c
e
s
/
s
o
u
r
c
e
.
p
r
o
p
e
r
t
i
e
s
"
)
)
;
t
h
i
s
.
d
e
s
t
i
n
a
t
i
o
n
=
n
e
w
H
i
k
a
r
i
D
a
t
a
S
o
u
r
c
e
(
n
e
w
H
i
k
a
r
i
C
o
n
f
i
g
(
"
s
r
c
/
m
a
i
n
/
r
e
s
o
u
r
c
e
s
/
d
e
s
t
i
n
a
t
i
o
n
.
p
r
o
p
e
r
t
i
e
s
"
)
)
;
}
这
个
引
擎
担
负
管
理
任
务
的
角
色
,
有
这
些
参
数
:
可
以
设
定
多
少
个
线
程
同
时
运
行
;
设
定
一
个
作
为
任
务
结
束
的
条
件
(
当
然
也
可
以
在
查
询
不
到
数
据
的
时
候
结
束
每
一
批
的
大
小
用
来
控
制
每
个
线
程
处
理
的
数
据
,
这
里
将
直
接
用
来
区
分
同
时
直
接
初
始
化
了
两
个
数
据
库
的
连
接
池
,
这
里
选
用
的
是
连
接
池
。
p
u
b
l
i
c
v
o
i
d
r
u
n
(
)
t
h
r
o
w
s
I
n
t
e
r
r
u
p
t
e
d
E
x
c
e
p
t
i
o
n
{
f
i
n
a
l
C
o
u
n
t
D
o
w
n
L
a
t
c
h
c
o
u
n
t
D
o
w
n
L
a
t
c
h
=
n
e
w
C
o
u
n
t
D
o
w
n
L
a
t
c
h
(
t
h
r
e
a
d
s
)
;
f
o
r
(
i
n
t
i
=
0
;
i
<
t
h
r
e
a
d
s
;
i
+
+
)
{
T
h
r
e
a
d
t
h
r
e
a
d
=
n
e
w
T
h
r
e
a
d
(
n
e
w
T
a
s
k
(
s
o
u
r
c
e
,
d
e
s
t
i
n
a
t
i
o
n
,
t
o
t
a
l
C
o
u
n
t
,
r
a
n
g
e
S
e
l
e
c
t
o
r
,
b
a
t
c
h
S
i
z
e
,
c
o
u
n
t
D
o
w
n
L
a
t
c
h
)
)
;
t
a
s
k
s
.
a
d
d
(
t
h
r
e
a
d
)
;
}
t
a
s
k
s
.
f
o
r
E
a
c
h
(
T
h
r
e
a
d
:
:
s
t
a
r
t
)
;
c
o
u
n
t
D
o
w
n
L
a
t
c
h
.
c
o
u
n
t
D
o
w
n
(
)
;
c
o
u
n
t
D
o
w
n
L
a
t
c
h
.
a
w
a
i
t
(
)
;
}
导
入
到
M
y
S
Q
l
3
核
心
逻
辑
就
是
,
启
动
个
线
程
,
然
后
一
直
等
待
到
每
个
线
程
都
结
束
,
即
完
成
了
任
务
。
T
a
s
k
对
应
到
每
个
线
程
,
每
个
线
程
处
理
的
任
务
是
一
样
的
,
只
是
处
理
的
数
据
记
录
不
同
。
p
u
b
l
i
c
v
o
i
d
r
u
n
(
)
{
l
o
g
g
e
r
.
i
n
f
o
(
"
E
T
L
t
a
s
k
{
}
r
u
n
n
i
n
g
.
.
.
"
,
T
h
r
e
a
d
.
c
u
r
r
e
n
t
T
h
r
e
a
d
(
)
.
g
e
t
I
d
(
)
)
;
t
r
y
(
C
o
n
n
e
c
t
i
o
n
s
o
u
r
c
e
C
o
n
n
=
s
o
u
r
c
e
.
g
e
t
C
o
n
n
e
c
t
i
o
n
(
)
;
C
o
n
n
e
c
t
i
o
n
d
e
s
t
i
n
a
t
i
o
n
C
o
n
n
=
d
e
s
t
i
n
a
t
i
o
n
.
g
e
t
C
o
n
n
e
c
t
i
o
n
(
)
)
{
w
h
i
l
e
(
t
r
u
e
)
{
f
i
n
a
l
l
o
n
g
s
t
a
r
t
I
d
=
r
a
n
g
e
S
e
l
e
c
t
o
r
.
g
e
t
A
n
d
A
d
d
(
b
a
t
c
h
S
i
z
e
)
;
f
i
n
a
l
l
o
n
g
e
n
d
I
d
=
s
t
a
r
t
I
d
+
b
a
t
c
h
S
i
z
e
;
i
f
(
s
t
a
r
t
I
d
>
t
o
t
a
l
C
o
u
n
t
)
{
l
o
g
g
e
r
.
i
n
f
o
(
"
R
e
a
c
h
e
d
e
n
d
o
f
r
e
c
o
r
d
s
:
{
}
,
t
a
s
k
f
i
n
i
s
h
e
d
"
,
s
t
a
r
t
I
d
)
;
b
r
e
a
k
;
}
j
o
b
.
d
o
T
r
a
n
s
f
e
r
(
s
o
u
r
c
e
C
o
n
n
,
d
e
s
t
i
n
a
t
i
o
n
C
o
n
n
,
s
t
a
r
t
I
d
,
e
n
d
I
d
)
;
}
}
c
a
t
c
h
(
S
Q
L
E
x
c
e
p
t
i
o
n
e
x
)
{
l
o
g
g
e
r
.
e
r
r
o
r
(
"
F
a
i
l
e
d
t
o
g
e
t
d
a
t
a
s
o
u
r
c
e
,
e
x
"
)
;
}
f
i
n
a
l
l
y
{
l
o
g
g
e
r
.
i
n
f
o
(
"
E
T
L
t
a
s
k
{
}
f
i
n
i
s
h
e
d
.
"
,
T
h
r
e
a
d
.
c
u
r
r
e
n
t
T
h
r
e
a
d
(
)
.
g
e
t
I
d
(
)
)
;
c
o
u
n
t
D
o
w
n
L
a
t
c
h
.
c
o
u
n
t
D
o
w
n
(
)
;
}
}
处
理
过
程
也
很
简
单
,
拿
到
一
个
之
后
,
根
据
得
到
要
获
取
的
范
围
,
然
后
委
派
给
具
体
的
去
处
理
。
当
超
出
最
大
范
围
的
时
候
,
停
止
该
线
程
。
J
o
b
对
应
到
具
体
每
条
数
据
该
如
何
传
输
,
会
稍
微
麻
烦
一
点
。
但
本
质
还
是
然
后
,
没
什
么
技
术
含
量
。
p
u
b
l
i
c
c
l
a
s
s
S
e
T
r
a
n
s
f
e
r
J
o
b
i
m
p
l
e
m
e
n
t
s
T
r
a
n
s
f
e
r
J
o
b
{
p
r
i
v
a
t
e
s
t
a
t
i
c
f
i
n
a
l
L
o
g
g
e
r
l
o
g
g
e
r
=
L
o
g
g
e
r
F
a
c
t
o
r
y
.
g
e
t
L
o
g
g
e
r
(
S
e
T
r
a
n
s
f
e
r
J
o
b
.
c
l
a
s
s
)
;
p
r
i
v
a
t
e
s
t
a
t
i
c
f
i
n
a
l
S
t
r
i
n
g
q
u
e
r
y
=
"
s
e
l
e
c
t
*
f
r
o
m
s
g
k
w
h
e
r
e
i
d
>
?
a
n
d
i
d
<
=
?
"
;
p
r
i
v
a
t
e
s
t
a
t
i
c
f
i
n
a
l
S
t
r
i
n
g
i
n
s
e
r
t
S
q
l
T
e
m
p
l
a
t
e
=
"
i
n
s
e
r
t
i
n
t
o
s
e
_
r
e
c
o
r
d
_
%
d
(
i
d
,
u
s
e
r
_
n
a
m
e
,
e
m
a
i
l
,
p
a
s
s
w
o
r
d
,
s
a
l
t
,
s
o
u
r
c
e
,
r
e
m
a
r
k
)
v
a
l
u
e
s
(
?
,
?
,
?
,
?
,
?
,
?
,
?
)
;
"
;
@
O
v
e
r
r
i
d
e
p
u
b
l
i
c
v
o
i
d
d
o
T
r
a
n
s
f
e
r
(
C
o
n
n
e
c
t
i
o
n
s
o
u
r
c
e
,
C
o
n
n
e
c
t
i
o
n
t
a
r
g
e
t
,
l
o
n
g
s
t
a
r
t
I
d
,
l
o
n
g
e
n
d
I
d
)
{
l
o
g
g
e
r
.
i
n
f
o
(
"
T
r
a
n
s
f
e
r
r
i
n
g
r
e
c
o
r
d
s
[
{
}
,
{
}
]
"
,
s
t
a
r
t
I
d
,
e
n
d
I
d
)
;
导
入
到
M
y
S
Q
l
4
t
r
y
{
t
a
r
g
e
t
.
s
e
t
A
u
t
o
C
o
m
m
i
t
(
f
a
l
s
e
)
;
}
c
a
t
c
h
(
S
Q
L
E
x
c
e
p
t
i
o
n
t
h
r
o
w
a
b
l
e
s
)
{
t
h
r
o
w
n
e
w
R
u
n
t
i
m
e
E
x
c
e
p
t
i
o
n
(
"
C
a
n
n
o
t
o
p
e
n
t
r
a
n
s
a
c
t
i
o
n
"
)
;
}
l
o
n
g
t
a
b
l
e
I
n
d
e
x
=
(
s
t
a
r
t
I
d
/
1
0
0
0
0
0
0
0
)
+
1
;
S
t
r
i
n
g
i
n
s
e
r
t
S
q
l
=
S
t
r
i
n
g
.
f
o
r
m
a
t
(
i
n
s
e
r
t
S
q
l
T
e
m
p
l
a
t
e
,
t
a
b
l
e
I
n
d
e
x
)
;
t
r
y
(
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
q
u
e
r
y
S
t
a
t
e
m
e
n
t
=
s
o
u
r
c
e
.
p
r
e
p
a
r
e
S
t
a
t
e
m
e
n
t
(
q
u
e
r
y
)
;
P
r
e
p
a
r
e
d
S
t
a
t
e
m
e
n
t
s
a
v
e
S
t
a
t
e
m
e
n
t
=
t
a
r
g
e
t
.
p
r
e
p
a
r
e
S
t
a
t
e
m
e
n
t
(
i
n
s
e
r
t
S
q
l
)
)
{
q
u
e
r
y
S
t
a
t
e
m
e
n
t
.
s
e
t
L
o
n
g
(
1
,
s
t
a
r
t
I
d
)
;
q
u
e
r
y
S
t
a
t
e
m
e
n
t
.
s
e
t
L
o
n
g
(
2
,
e
n
d
I
d
)
;
t
r
y
(
R
e
s
u
l
t
S
e
t
r
e
s
u
l
t
=
q
u
e
r
y
S
t
a
t
e
m
e
n
t
.
e
x
e
c
u
t
e
Q
u
e
r
y
(
)
)
{
w
h
i
l
e
(
r
e
s
u
l
t
.
n
e
x
t
(
)
)
{
R
e
c
o
r
d
r
e
c
o
r
d
=
R
e
c
o
r
d
.
f
r
o
m
(
r
e
s
u
l
t
)
;
i
f
(
!
r
e
c
o
r
d
.
i
s
V
a
l
i
d
(
)
)
{
l
o
g
g
e
r
.
w
a
r
n
(
"
F
o
u
n
d
i
n
v
a
i
d
r
e
c
o
r
d
:
{
}
"
,
r
e
c
o
r
d
)
;
}
e
l
s
e
{
r
e
c
o
r
d
.
a
t
t
a
c
h
(
s
a
v
e
S
t
a
t
e
m
e
n
t
)
;
s
a
v
e
S
t
a
t
e
m
e
n
t
.
a
d
d
B
a
t
c
h
(
)
;
}
}
}
s
a
v
e
S
t
a
t
e
m
e
n
t
.
e
x
e
c
u
t
e
B
a
t
c
h
(
)
;
t
a
r
g
e
t
.
c
o
m
m
i
t
(
)
;
l
o
g
g
e
r
.
i
n
f
o
(
"
R
e
c
o
r
d
s
[
{
}
,
{
}
]
-
>
s
e
_
r
e
c
o
r
d
_
{
}
c
o
m
m
i
t
e
d
"
,
s
t
a
r
t
I
d
,
e
n
d
I
d
,
t
a
b
l
e
I
n
d
e
x
)
;
}
c
a
t
c
h
(
S
Q
L
E
x
c
e
p
t
i
o
n
e
x
)
{
l
o
g
g
e
r
.
e
r
r
o
r
(
"
U
n
e
x
p
e
c
t
e
d
s
q
l
e
r
r
o
r
:
"
,
e
x
)
;
t
h
r
o
w
n
e
w
R
u
n
t
i
m
e
E
x
c
e
p
t
i
o
n
(
e
x
)
;
}
}
}
这
里
因
为
数
据
量
太
大
,
做
了
一
个
分
区
的
处
理
,
直
接
按
照
来
进
行
分
区
,
每
个
表
控
制
在
千
万
以
下
。
因
此
导
入
完
成
后
,
最
终
会
有
多
个
表
,
每
个
表
有
接
近
千
万
的
数
据
。
否
则
单
表
过
大
之
后
的
插
入
性
能
会
变
得
很
低
。
以
上
就
是
整
个
的
核
心
思
想
,
还
是
有
一
定
的
扩
展
性
的
,
哈
哈
。
HTML view coming soon.
Download PDF
for the full formatted version.