在业务运行中,经常会沉淀到大量数据到数据湖中这部分数据可能是没有像数据仓库一样经过严格的数据管理流程或沉淀规范明确的元数据信息。元数据抽取可以分析数据湖中特定格式的数据,并自动生成元数据信息,通过周期性或手动执行,实现数据湖分析计算schema on read目标。
使用限制
- 抽取的数据存储仅支持数据存储在阿里云OSS标准型中的数据。 
- 目前元数据发现仅支持JSON、CSV、Parquet、ORC、Hudi、Delta、Avro格式。 
- 元数据发现消耗算力,目前暂不收取费用。 
操作步骤
- 登入数据湖构建控制台。 
- 在左侧导航栏,单击元数据> 元数据抽取。 
- 在元数据抽取页面,单击新建抽取任务。 
- 输入元数据抽取任务的配置参数,详细参数说明如下。 - 参数配置 - 字段描述 - 抽取任务名称 - 元数据抽取任务的名称,输入为中英文数字和(_)。 - OSS路径 - 指定待抽取数据文件的OSS路径。路径结构为: - oss://<所选路径>/<表(可选)>/<分区(可选)>/<文件>。DLF会根据您输入的OSS路径,自动创建表和分区。- 例如,如果您指定路径 - oss://my-bucket/my-path/,并且文件路径为- oss://my-bucket/my-path/my-table/dt=1/data.csv,系统将会以my_table作为表名,dt作为分区,抽取data.csv文件的内容,并将其用作表的Schema。说明- 为了避免解析错误,请删除文件夹中的.DS_Store文件。 - 排除模式 - 排查指定OSS目录下的文件,支持正则匹配。 - 解析格式 - 支持JSON、CSV、Parquet、ORC、Hudi、Delta、Avro中对某一类格式进行抽取,或采用自动识别模式会对数据文件自动解析。 - 目标数据库 - 抽取获取的元数据存储在元数据库的位置。 - 目标数据表前缀 - 通过元数据抽取生成跟文件一致的表名,输入目标元数据表前缀后,会在表名前添加前缀。 - 抽取任务发现表字段更新时 - 当元数据抽取任务获取的表与现有表字段发现不一致时,采取: - 仅新增列,不会删除元数据中原有的列。 
- 更新表结构,根据最新探测到的表结构生成新的表结果。 
- 忽略更新,不修改任何表,现有元数据保持不变。 
 说明- ORC文件不支持识别新增列。 - 如何处理OSS中发现已删除对象 - 当元数据抽取任务探测到原来表对应OSS数据已经被删除,采取: - 删除对应的元数据。 
- 忽略更新,不删除任何表。 
 - RAM角色 - 执行元数据抽取任务时采用的角色,默认为AliyunDLFWorkFlowDefaultRole,赋予DLF产品作业执行的权限。 - 执行策略 - 手动执行,通过手动方式触发任务执行。 
- 调度执行,周期性地通过指定时间执行元数据抽取任务。 
 - 抽取策略 - 快速抽取:抽取元数据时只扫描每个文件的部分数据,抽取作业消耗时间较短,抽取结果准确性低于全量抽取,您可以在元数据编辑中调整元数据信息。 
- 全量抽取:抽取元数据时扫描全量数据文件,在数据规模比较大时,作业消耗时间长,抽取结果更准确。 
 
5. 确认任务执行的相关参数,单击保存并立即执行。