最近更新时间:2023.09.15 22:16:59
首次发布时间:2023.09.15 22:16:59
用户可以自行搭建FTP服务器,将数仓数据定期以文件的形式推入FTP服务器中,CDP支持通过连接FTP服务器将数据下载,然后将文件结构化映射成相关表结构内容,供CDP系统进行识别读取,实现数据连接。
用户需具备 项目编辑 或 权限-按内容管理-模块-数据连接-新建连接 权限,才能使用该功能。
1.点击 数据融合 > 数据连接 。
2.在数据连接目录左上角- 新建数据连接 按钮,选择 Web连接器 - FTP/SFTP 数据连接(暂不支持SFTP连接)。
3.在编辑页面,配置对应参数。如:
数据连接名称:必填项目,连接名_年月日时分秒,如ftp_sftp_xxx
配置服务器端口/用户名/密码等
说明
FTP服务器部署:
用户可以自由搭建,但是需要开放CDP系统连接访问。
FTP服务器需要配置被动模式,且端口范围需要足够大,建议值为:FTP数据集数量*2
*更多配置过程中的常见问题可参考本文档 附录2
协议类型:FTP
FTP连接模式:默认为Pasv(被动模式)
文件类型:支持csv\txt
说明
FTP文件内容及格式要求如下:
文件目录格式:必填, 如/data/student
规则1:最后一级目录名称必须和表名一致,格式为/data/{tableName},如/data/student
规则2:不支持多级目录解析,请勿在数据文件所在目录下定义子目录,如有系统会自动跳过
规则3:文件目录不建议变化,变化前请先更新【CDP-数据连接】配置项,避免数据查询异常
规则4:一个文件目录表示一张表,不支持多表共用一个文件目录,也不支持一张表有多个目录
文件目录内容:
数据文件:必填, 只支持CSV、TXT,可以有多个文件,名称也不做限制
规则:数据文件列(字段)顺序必须和元信息文件保持一致,且数据文件不包含表头(字段名行)
规则:每次查询时,根据文件目录地址拉取全部数据 (不包含子目录文件)
规则:单文件目录下文件总大小建议小于500G
元信息****文件:必填, {tableName}.yml (如果有结构变动需要改这个文件)
规则1:用于解析数据文件映射为结构化表
规则2:{tableName}为表名,不支持表名变更,{tableName}需要和该目录名称一致
文件内容格式参见本文档 附录1
同步成功标志文件:必填, {date}.verf,例如 20230801.verf
逻辑:用于标记数据是否推送完成,CDP任务用于构建对FTP任务的依赖逻辑
规则1:文件必须存在,任务执行时读取20230801文件名判断相应业务日期的数据有没有ready
规则2:历史更新的同步成功文件可以保留,可以删除,不影响最新一天的判断
规则3:回刷场景,逻辑上不支持保留历史数据,每次从FTP拉取数据都是根据文件目录全量拉取,回刷时,如历史日期的同步成功标志依然存在,则会根据最新的文件拉取全部数据,如不存在,则回刷任务会一直Pending,无法执行成功
5.单击 解析表结构 ,将对文件目录进行解析,数据表预览展示表名和字段名,表名如果过多的话,支持滚动展示,默认展示第一个表名下的字段信息。
6.单击 测试连接,将进行数据源连通性测试。
7.测试成功后,单击 保存 即可。
#请按以下参数填写: ### name:字段名称(必填) ########## 字段命名规则:需确保字段名唯一性;仅支持字母、数字、下划线且以字母为首,最多100个字符 ### alias:字段别名(选填) ########## 字段别名规则:字符类型不限,最多100个字符 ### type:字段类型(必填) ########## 类型规则:无需明确长度,可指定类型如下: # string # boolean # int # 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
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地址安全检查,如下:
执行以下命令编辑FTP配置文件:
vi /etc/vsftpd/vsftpd.conf
在配置文件中添加以下内容。
pasv_promisculous=是
保存退出后,执行以下命令重启FTP服务。
服务 vsftpd 重新启动