本文介绍如何通过向导创建OSS元数据发现任务,自动发现与云原生数据仓库AnalyticDB MySQL版湖仓版(3.0)集群相同地域下OSS的Bucket和数据文件。
背景信息
企业的业务服务所产生的一些标准化表单、日志等数据文件,会被周期性地上传到OSS。但是这些存储在OSS的文件缺少元数据管理,导致难以分析和计算。元数据发现任务具备自动映射OSS路径、自动对OSS文件分组、自动探索OSS文件字段、自动感知字段变化的能力,能够自动创建和更新数据湖元数据。
前提条件
使用限制
同一个OSS路径,在一个集群中只能创建一个元数据任务。
操作步骤
OSS路径映射到AnalyticDB MySQL的示例
OSS路径映射到AnalyticDB MySQL的结果,与以下两个因素有关。
- OSS文件及其所在路径。
- 元数据发现任务中选择的OSS目录位置。
系统会根据您选择的OSS目录位置自动将OSS目录位置后的第一层目录名映射为表名,OSS目录位置后的第二层至最后一层目录名映射为分区,示例如下。
OSS路径 | OSS目录位置 | 映射到AnalyticDB MySQL的表 |
---|---|---|
oss://adb/Table1/file1.csv
oss://adb/Table1/file2.json |
oss://adb/ | 不能映射表。
原因:Table1目录下的文件类型为CSV和JSON,文件类型不一致,故而不能映射表。
重要 如果文件类型相同,但文件中字段的数据类型不一致,也不能进行映射。
|
oss://adb/Table2/year/month/day/file3.json
oss://adb/Table2/year/month/day/file4.json |
oss://adb/ | 映射到AnalyticDB MySQL的表为分区表,表名为Table2 ,分区字段为partition_0 、partition_1 和partition_2 。
说明 由于没有分区键,这里使用partition_num来补充。
|
oss://adb/Table2/ | 映射到AnalyticDB MySQL的表为分区表,表名为year ,分区字段为partition_0 和partition_1 。
|
|
oss://adb/Table2/year/month/ | 映射到AnalyticDB MySQL的表为非分区表,表名为day 。
|
|
oss://adb/Table2/year/month/day/ | 不能映射表。
原因:选择的OSS目录位置后无其他层目录。 |
|
oss://adb/Table3/year=2022/month=03/day=01/file5.csv
oss://adb/Table3/year=2022/month=03/day=01/file6.csv |
oss://adb/ | 映射到AnalyticDB MySQL的表为分区表,表名为Table3 ,分区字段为year 、month 和day 。
|
|
不能映射表。
原因:year=2022或month=03不符合AnalyticDB MySQL表的命名规则。表命名规则的详细信息,请参见使用限制。 |
|
oss://adb/Table4/2020/03/30/file7.csv
oss://adb/Table3/2020/03/30/file8.csv |
oss://adb/ | 映射到AnalyticDB MySQL的表为分区表,表名为Table4 ,分区字段为partition_0 、partition_1 和partition_2 。
说明 由于没有分区键,这里使用partition_num来补充。
|
|
不能映射表。
原因:2020或03不符合adb表的命名规则。表命名规则的详细信息,请参见使用限制。 |