Skip to content

Commit fe39fd4

Browse files
author
dataccs
authored
Create ftpwriter.md
1 parent a75c18d commit fe39fd4

File tree

1 file changed

+244
-0
lines changed

1 file changed

+244
-0
lines changed

ftpwriter/doc/ftpwriter.md

Lines changed: 244 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,244 @@
1+
# DataX FtpWriter 说明
2+
3+
4+
------------
5+
6+
## 1 快速介绍
7+
8+
FtpWriter提供了向远程FTP文件写入CSV格式的一个或者多个文件,在底层实现上,FtpWriter将DataX传输协议下的数据转换为csv格式,并使用FTP相关的网络协议写出到远程FTP服务器。
9+
10+
**写入FTP文件内容存放的是一张逻辑意义上的二维表,例如CSV格式的文本信息。**
11+
12+
13+
## 2 功能与限制
14+
15+
FtpWriter实现了从DataX协议转为FTP文件功能,FTP文件本身是无结构化数据存储,FtpWriter如下几个方面约定:
16+
17+
1. 支持且仅支持写入文本类型(不支持BLOB如视频数据)的文件,且要求文本中shema为一张二维表。
18+
19+
2. 支持类CSV格式文件,自定义分隔符。
20+
21+
3. 写出时不支持文本压缩。
22+
23+
6. 支持多线程写入,每个线程写入不同子文件。
24+
25+
我们不能做到:
26+
27+
1. 单个文件不能支持并发写入。
28+
29+
30+
## 3 功能说明
31+
32+
33+
### 3.1 配置样例
34+
35+
36+
```json
37+
{
38+
"setting": {},
39+
"job": {
40+
"setting": {
41+
"speed": {
42+
"channel": 2
43+
}
44+
},
45+
"content": [
46+
{
47+
"reader": {},
48+
"writer": {
49+
"name": "ftpwriter",
50+
"parameter": {
51+
"protocol": "sftp",
52+
"host": "***",
53+
"port": 22,
54+
"username": "xxx",
55+
"password": "xxx",
56+
"timeout": "60000",
57+
"connectPattern": "PASV",
58+
"path": "/tmp/data/",
59+
"fileName": "yixiao",
60+
"writeMode": "truncate|append|nonConflict",
61+
"fieldDelimiter": ",",
62+
"encoding": "UTF-8",
63+
"nullFormat": "null",
64+
"dateFormat": "yyyy-MM-dd",
65+
"fileFormat": "csv",
66+
"header": []
67+
}
68+
}
69+
}
70+
]
71+
}
72+
}
73+
```
74+
75+
### 3.2 参数说明
76+
77+
* **protocol**
78+
79+
* 描述:ftp服务器协议,目前支持传输协议有ftp和sftp。 <br />
80+
81+
* 必选:是 <br />
82+
83+
* 默认值:无 <br />
84+
85+
* **host**
86+
87+
* 描述:ftp服务器地址。 <br />
88+
89+
* 必选:是 <br />
90+
91+
* 默认值:无 <br />
92+
93+
* **port**
94+
95+
* 描述:ftp服务器端口。 <br />
96+
97+
* 必选:否 <br />
98+
99+
* 默认值:若传输协议是sftp协议,默认值是22;若传输协议是标准ftp协议,默认值是21 <br />
100+
101+
* **timeout**
102+
103+
* 描述:连接ftp服务器连接超时时间,单位毫秒。 <br />
104+
105+
* 必选:否 <br />
106+
107+
* 默认值:60000(1分钟)<br />
108+
109+
* **username**
110+
111+
* 描述:ftp服务器访问用户名。 <br />
112+
113+
* 必选:是 <br />
114+
115+
* 默认值:无 <br />
116+
117+
* **password**
118+
119+
* 描述:ftp服务器访问密码。 <br />
120+
121+
* 必选:是 <br />
122+
123+
* 默认值:无 <br />
124+
125+
* **path**
126+
127+
* 描述:FTP文件系统的路径信息,FtpWriter会写入Path目录下属多个文件。 <br />
128+
129+
* 必选:是 <br />
130+
131+
* 默认值:无 <br />
132+
133+
* **fileName**
134+
135+
* 描述:FtpWriter写入的文件名,该文件名会添加随机的后缀作为每个线程写入实际文件名。 <br />
136+
137+
* 必选:是 <br />
138+
139+
* 默认值:无 <br />
140+
141+
* **writeMode**
142+
143+
* 描述:FtpWriter写入前数据清理处理模式: <br />
144+
145+
* truncate,写入前清理目录下一fileName前缀的所有文件。
146+
* append,写入前不做任何处理,DataX FtpWriter直接使用filename写入,并保证文件名不冲突。
147+
* nonConflict,如果目录下有fileName前缀的文件,直接报错。
148+
149+
* 必选:是 <br />
150+
151+
* 默认值:无 <br />
152+
153+
* **fieldDelimiter**
154+
155+
* 描述:读取的字段分隔符 <br />
156+
157+
* 必选:否 <br />
158+
159+
* 默认值:, <br />
160+
161+
* **compress**
162+
163+
* 描述:文本压缩类型,暂时不支持。 <br />
164+
165+
* 必选:否 <br />
166+
167+
* 默认值:无压缩 <br />
168+
169+
* **encoding**
170+
171+
* 描述:读取文件的编码配置。<br />
172+
173+
* 必选:否 <br />
174+
175+
* 默认值:utf-8 <br />
176+
177+
178+
* **nullFormat**
179+
180+
* 描述:文本文件中无法使用标准字符串定义null(空指针),DataX提供nullFormat定义哪些字符串可以表示为null。<br />
181+
182+
例如如果用户配置: nullFormat="\N",那么如果源头数据是"\N",DataX视作null字段。
183+
184+
* 必选:否 <br />
185+
186+
* 默认值:\N <br />
187+
188+
* **dateFormat**
189+
190+
* 描述:日期类型的数据序列化到文件中时的格式,例如 "dateFormat": "yyyy-MM-dd"。<br />
191+
192+
* 必选:否 <br />
193+
194+
* 默认值:无 <br />
195+
196+
* **fileFormat**
197+
198+
* 描述:文件写出的格式,包括csv (http://zh.wikipedia.org/wiki/%E9%80%97%E5%8F%B7%E5%88%86%E9%9A%94%E5%80%BC) 和text两种,csv是严格的csv格式,如果待写数据包括列分隔符,则会按照csv的转义语法转义,转义符号为双引号";text格式是用列分隔符简单分割待写数据,对于待写数据包括列分隔符情况下不做转义。<br />
199+
200+
* 必选:否 <br />
201+
202+
* 默认值:text <br />
203+
204+
* **header**
205+
206+
* 描述:txt写出时的表头,示例['id', 'name', 'age']。<br />
207+
208+
* 必选:否 <br />
209+
210+
* 默认值:无 <br />
211+
212+
### 3.3 类型转换
213+
214+
215+
FTP文件本身不提供数据类型,该类型是DataX FtpWriter定义:
216+
217+
| DataX 内部类型| FTP文件 数据类型 |
218+
| -------- | ----- |
219+
|
220+
| Long |Long -> 字符串序列化表示|
221+
| Double |Double -> 字符串序列化表示|
222+
| String |String -> 字符串序列化表示|
223+
| Boolean |Boolean -> 字符串序列化表示|
224+
| Date |Date -> 字符串序列化表示|
225+
226+
其中:
227+
228+
* FTP文件 Long是指FTP文件文本中使用整形的字符串表示形式,例如"19901219"。
229+
* FTP文件 Double是指FTP文件文本中使用Double的字符串表示形式,例如"3.1415"。
230+
* FTP文件 Boolean是指FTP文件文本中使用Boolean的字符串表示形式,例如"true"、"false"。不区分大小写。
231+
* FTP文件 Date是指FTP文件文本中使用Date的字符串表示形式,例如"2014-12-31",Date可以指定format格式。
232+
233+
234+
## 4 性能报告
235+
236+
237+
## 5 约束限制
238+
239+
240+
241+
## 6 FAQ
242+
243+
244+

0 commit comments

Comments
 (0)