You need to enable JavaScript to run this app.
导航
FTP数据接入
最近更新时间:2024.11.28 10:46:56首次发布时间:2023.09.15 22:16:59

1. 产品概述

用户可以自行搭建FTP服务器,将数仓数据定期以文件的形式推入FTP服务器中,CDP支持通过连接FTP服务器将数据下载,然后将文件结构化映射成相关表结构内容,供CDP系统进行识别读取,实现数据连接。

2. 使用条件

用户需具备 项目编辑权限-按内容管理-模块-数据连接-新建连接 权限,才能使用该功能。

3. 操作步骤

1.点击 数据管理 - 数据连接
Image
2.在数据连接目录左上角- 新建数据连接 按钮,选择 Web连接器 - FTP/SFTP 数据连接(暂不支持SFTP连接)。
Image
3.在编辑页面,配置对应参数。如:

  • 数据连接名称:必填项目,连接名_年月日时分秒,如ftp_sftp_xxx
  • 配置服务器端口/用户名/密码等

说明

FTP服务器部署:
用户可以自由搭建,但是需要开放CDP系统连接访问。
FTP服务器需要配置被动模式,且端口范围需要足够大,建议值为:FTP数据集数量*2
*更多配置过程中的常见问题可参考本文档 附录2

  • 协议类型:FTP
  • FTP连接模式:默认为Pasv(被动模式)
  • 文件类型:支持csv\txt

Image

说明

FTP文件内容及格式要求如下:

  1. 文件目录格式必填, 如/data/student
    1. 规则1:最后一级目录名称必须和表名一致,格式为/data/{tableName},如/data/student
    2. 规则2:不支持多级目录解析,请勿在数据文件所在目录下定义子目录,如有系统会自动跳过
    3. 规则3:文件目录不建议变化,变化前请先更新【CDP-数据连接】配置项,避免数据查询异常
    4. 规则4:一个文件目录表示一张表,不支持多表共用一个文件目录,也不支持一张表有多个目录
  2. 文件目录内容:
    1. 数据文件:必填, 只支持CSV、TXT,可以有多个文件,名称也不做限制
      1. 规则:数据文件列(字段)顺序必须和元信息文件保持一致,且数据文件不包含表头(字段名行)
      2. 规则:每次查询时,根据文件目录地址拉取全部数据 (不包含子目录文件)
      3. 规则:单文件目录下文件总大小建议小于500G
    2. 元信息****文件:必填, {tableName}.yml (如果有结构变动需要改这个文件)
      1. 规则1:用于解析数据文件映射为结构化表
      2. 规则2:{tableName}为表名,不支持表名变更,{tableName}需要和该目录名称一致
      3. 文件内容格式参见本文档 附录1
    3. 同步成功标志文件:必填, {date}.verf,例如 20230801.verf
      1. 逻辑:用于标记数据是否推送完成,CDP任务用于构建对FTP任务的依赖逻辑
      2. 规则1:文件必须存在,任务执行时读取20230801文件名判断相应业务日期的数据有没有ready
      3. 规则2:历史更新的同步成功文件可以保留,可以删除,不影响最新一天的判断
      4. 规则3:回刷场景,逻辑上不支持保留历史数据,每次从FTP拉取数据都是根据文件目录全量拉取,回刷时,如历史日期的同步成功标志依然存在,则会根据最新的文件拉取全部数据,如不存在,则回刷任务会一直Pending,无法执行成功

5.单击 解析表结构 ,将对文件目录进行解析,数据表预览展示表名和字段名,表名如果过多的话,支持滚动展示,默认展示第一个表名下的字段信息。
Image
6.单击 测试连接,将进行数据源连通性测试。
Image
7.测试成功后,单击 保存 即可。

附录1:文件内容格式
#请按以下参数填写:
### name:字段名称(必填)
########## 字段命名规则:需确保字段名唯一性;仅支持字母、数字、下划线且以字母为首,最多100个字符
### alias:字段别名(选填)
########## 字段别名规则:字符类型不限,最多100个字符
### type:字段类型(必填)
########## 类型规则:无需明确长度,可指定类型如下:
    # string
    # boolean
    # long
    # double
    # date
    # datetime
    # 下面两种类型中的%s仅支持基本类型如int
    # 不支持多层嵌套,例如array<array<int>>
    # array<%s>
    # map<%s,%s>
#--------------------------------------------------------------------------------

columns:
  - name: brand_id
    alias: 品牌id
    type: int
  - name: brand_name
    alias: 品牌名称
    type: string
  - name: brand_desc
    alias: 品牌介绍
    type: string
  - name: create_time
    alias: 创建时间
    type: date
  - name: update_time
    alias: 变更时间
    type: date

附录2:FTP配置常见问题

Q1:FTP连接服务器遇到530 login incorrect错误怎么解决?
1)密码错误。
2)检查/etc/vsftpd/vsftpd.conf配置
vim /etc/vsftpd/vsftpd.conf

说明

参看下面配置
anonymous_enable=YES
userlist_deny=NO //参看下面的说明
userlist_enable=YES
userlist_file=/etc/userlist
seccomp_sandbox=NOlocal_enable=YES
pam_service_name=vsftpd //这里重要,有人说ubuntu是pam_service_name=ftp,可以试试
其中关于userlist文件的说明

vsftpd userlist
If userlist_deny=NO, only allow users in this file
If userlist_deny=YES (default), never allow users in this file, and
do not even prompt for a password.
Note that the default vsftpd pam config also checks /etc/vsftpd/ftpusers
for users that are denied.

3.检查/etc/pam.d/vsftpd
vim /etc/pam.d/vsftpd
注释掉
#auth required pam_shells.so

Q2:Linux实例上传文件到FTP站点报“425 Security:Bad IP connection”错误怎么解决?
1)可能的原因:
FTP服务有两种连接,一种是控制连接,另一种是数据连接。默认情况下,FTP服务器在传输数据时会检查两个连接的源IP地址是否相同。如果不是,则会报告“425 安全:错误的 IP 连接”错误。此问题往往是由于NAT网络中的客户端,且NAT关联的公网IP地址多个,导致两次连接,源IP不一致造成的。
2)解决方案:
关闭被动模式下的IP地址安全检查,如下:

  1. 执行以下命令编辑FTP配置文件:
  2. vi /etc/vsftpd/vsftpd.conf
  3. 在配置文件中添加以下内容。
  4. pasv_promisculous=是
  5. 保存退出后,执行以下命令重启FTP服务。
  6. 服务 vsftpd 重新启动