概述
FTP(File Transfer Protocol)是一种文件传输协议,由两个部分组成:
- FTP 服务器 :用来存储文件,可以使用 FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源。
- FTP 客户端 :可以使用 FTP 客户端通过 FTP 协议访问位于 FTP 服务器上的资源。
配置 FTP 数据源后,您可以通过 数据融合 > 任务管理 功能将其数据导入至神策数据表或实体中,便于后续在报表、分析模型、智能运营等模块使用。
在配置数据源之前,请参考以下内容确认您的 FTP 数据源是否符合要求:
数据源类型 |
数据源名称 |
版本/协议要求 |
用户权限要求 |
其他要求 |
对象存储 |
FTP |
FTP/SFTP |
至少包含文件夹路径的读取权限 |
数据文件仅支持 txt、csv 格式 |
添加 FTP 数据源
- 选择 数据融合 > 通用数据接入 > 数据源管理 。
- 点击 全部数据源 Tab 页。
- 点击 FTP 数据源。
- 点击右上角的 创建 按钮。
- 填写 FTP 连接信息。
- 数据源连接名称 :由您自定义填写,是该数据源连接在平台内的唯一标识。
- 协议类型 :支持 FTP 和 SFTP。
- 服务器 :数据源连接的 IP 地址,集群场景下,支持输入多个。
- 端口号 :数据源连接的端口号。
- 基础路径 :该路径是根目录的绝对路径,例如:/home/sa_cluster。
- 文件类型 :读取 数据文件 的类型范围,当前支持 txt、csv,后续同步数据时,仅读取指定类型的数据文件。
- 用户名 :数据源连接的有效用户名。
- 密码 :对应用户名的有效密码。
- 点击 测试连接 按钮。
- 点击 提交 按钮。
FTP 数据集配置方法
通过 FTP 数据源接入数据,必须先按以下方法对路径、文件夹、文件进行配置。
路径规则定义
导入数据集时,需按该路径规则进行配置,如:/home/dataGroupFile/dataFile
- /home:基础路径
- dataGroupFile:数据集分组文件夹
- dataFile:数据集文件夹
单个数据集需包含的内容
序号 |
内容名称和必要性 |
作用 |
约束 |
示例文件 |
01 |
数据集分组文件夹 必要 |
类比结构化数据库 DB,起到对数据集分组的作用 |
无具体名称约束,可以自定义 |
- |
02 |
数据集文件夹 必要 |
一个文件夹代表一个数据集;该文件夹包含三类文件:元数据文件、数据文件、就绪文件 |
文件夹命名规则: 仅支持字母、数字、下划线的组合,且需要以字母开头;最多 100 个字符 |
- |
03 |
元数据文件 必要 |
描述当前数据集的数据结构,一个数据集文件夹下只能存放一个元数据文件 |
文件格式: yml 格式 文件命名规则: 与数据集文件夹名称一致 字段命名规则: 仅支持字母、数字、下划线的组合,且需要以字母开头;最多 100 个字符 字段类型: 可设置的字段类型请参见第四章 |
|
04 |
数据文件 非必要 |
存储当前数据集 数据 的文件;一个数据集文件夹下支持存放多个数据文件。 注:数据文件需要严格遵从命名规则,否则将无法被系统读取 |
文件格式: txt 或 csv 格式 分隔符: 逗号分隔符 字符编码: UTF-8 文件命名规则: {fileName}_{dataTime}
- fileName:与数据集文件夹名称一致
- dataTime:必须写在文件名最后一个下划线的后方,代表当前数据的业务时间。格式为{yyyymmddHH} 其中{HH} 为 24 小时制,即:00-23
接入 FTP 数据后,仅支持全量覆盖、全量追加、增量追加三种更新方式。增量追加时将默认使用 {dataTime} 作为增量标识字段递增读取。
|
|
05 |
就绪文件 含数据文件时:必要 |
代表某个数据文件已生成就绪;文件内容无具体要求 注:一个数据文件对应一个就绪文件,缺少就绪文件的数据将无法被读取 |
文件格式: verf 格式 文件命名规则: 与某个数据文件名称一致
|
|
管理 FTP 数据源
- 选择 数据融合 > 通用数据接入 > 数据源管理 。
- 点击 已添加数据源 Tab 页。
- 点击 FTP 数据源。
- 编辑 :支持修改数据连接的所有配置参数。
- 删除 :删除当前连接。
如果当前数据连接已被任务使用,修改参数或删除连接会导致任务失败。
字段类型的映射规则
从 FTP 数据源将数据导入到神策数据表,字段类型映射错误可能导致内容转换错误或任务执行失败,按以下规则配置字段映射,数据转换是安全的:
原始字段类型 |
数据表字段类型 |
tinyint |
NUMBER / INT / BIGINT |
smallint |
NUMBER / INT / BIGINT |
mediumint |
NUMBER / INT / BIGINT |
int |
NUMBER / INT / BIGINT |
bigint |
NUMBER / BIGINT |
float |
NUMBER |
double |
NUMBER |
decimal |
NUMBER |
char |
STRING |
enum |
STRING |
longtext |
STRING |
mediumtext |
STRING |
string |
STRING |
text |
STRING |
tinytext |
STRING |
varchar |
STRING |
year |
STRING |
date |
TIMESTAMP |
datetime |
TIMESTAMP |
timestamp |
TIMESTAMP |