
# OBS数据源
华为云OBS（对象存储服务）是一种海量、安全、高可靠、低成本的云存储服务，支持多种数据存储和访问方式，适用于多种场景如数据备份、图片视频存储等。
本数据集成服务支持华为云OBS产品，提供读取和写OBS的数据迁移能力。
#### 使用前准备及限制
- **网络要求**
  OBS数据源必须与CDM网络进行通讯，以确保数据传输的顺畅性。详情请参见[网络打通](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7765.html)。
  
- **权限** **要求**
  - **读权限** ：如果数据集成服务仅需要从OBS读取数据，可授予**OBS ReadOnlyAccess**系统策略。该策略允许用户执行列举桶、获取桶基本信息、获取桶元数据、列举对象等操作。
  
  - **写权限** ：如果数据集成服务需要向OBS写入数据，可授予**OBS OperateAccess** **或OBS Administrator**系统策略。拥有该权限的用户可以执行OBS ReadOnlyAccess的所有操作，在此基础上还可以执行上传对象、下载对象、删除对象、获取对象ACL等对象基本操作。
   
 
#### 支持的数据类型
本数据集成服务支持OBS文件多格式解析，对于ORC、PARQUET格式，支持解析以下类型。
- **Parquet文件支持类型**
  
  | **PrimitiveType**    | **Logical Type** | **读取是否支持** | **写入是否支持** |
  |:---|:---|:---|:---|
  | INT64                | INT_64           | √          | √          |
  | INT64                | UINT_64          | √          | √          |
  | INT64                | DECIMAL          | √          | √          |
  | INT64                | TIME_MICROS      | √          | √          |
  | INT64                | TIMESTAMP_MILLIS | √          | √          |
  | INT64                | TIMESTAMP_MICROS | √          | √          |
  | INT64                | 不涉及              | √          | √          |
  | INT32                | UINT_8           | √          | √          |
  | INT32                | UINT_16          | √          | √          |
  | INT32                | UINT_32          | √          | √          |
  | INT32                | INT_8            | √          | √          |
  | INT32                | INT_16           | √          | √          |
  | INT32                | INT_32           | √          | √          |
  | INT32                | DECIMAL          | √          | √          |
  | INT32                | DATE             | √          | √          |
  | INT32                | TIME_MILLIS      | √          | √          |
  | INT32                | 不涉及              | √          | √          |
  | BOOLEAN              | 不涉及              | √          | √          |
  | BINARY               | DECIMAL          | √          | √          |
  | BINARY               | UTF8             | √          | √          |
  | BINARY               | ENUM             | √          | √          |
  | BINARY               | JSON             | √          | √          |
  | BINARY               | BSON             | √          | √          |
  | BINARY               | 不涉及              | √          | √          |
  | FLOAT                | 不涉及              | √          | √          |
  | DOUBLE               | 不涉及              | √          | √          |
  | INT96                | 不涉及              | √          | √          |
  | FIXED_LEN_BYTE_ARRAY | DECIMAL          | √          | √          |
  | FIXED_LEN_BYTE_ARRAY | INTERVAL         | √          | √          |
  | GroupType            | LIST             | x          | x          |
  | GroupType            | MAP              | x          | x          |
  | GroupType            | STRUCT           | x          | x          |
     
  
- **ORC文件支持类型**
  
  | **类别** | **字段类型**  | **读取是否支持** | **写入是否支持** |
  |:---|:---|:---|:---|
  | 数值     | TINYINT   | √          | √          |
  | 数值     | SMALLINT  | √          | √          |
  | 数值     | INT       | √          | √          |
  | 数值     | BIGINT    | √          | √          |
  | 数值     | FLOAT     | √          | √          |
  | 数值     | DOUBLE    | √          | √          |
  | 数值     | DECIMAL   | √          | √          |
  | 时间     | TIMESTAMP | √          | √          |
  | 时间     | DATE      | √          | √          |
  | 字符     | VARCHAR   | √          | √          |
  | 字符     | STRING    | √          | √          |
  | 字符     | CHAR      | √          | √          |
  | 布尔     | BOOLEAN   | √          | √          |
  | BINARY | BINARY    | √          | √          |
  | 复杂类型   | LIST      | x          | x          |
  | 复杂类型   | MAP       | x          | x          |
  | 复杂类型   | STRUCT    | x          | x          |
     
  
 
#### 支持的迁移场景
数据集成离线同步支持以下三种同步方式，以满足不同数据迁移场景的需求：
- **单表同步**
  适用于数据入湖和数据上云场景下，表或文件级别的数据同步。
  
- **分库分表同步**
  适用于数据入湖和数据上云场景下，多库多表同步场景。
  
- **整库迁移**
  适用于数据入湖和数据上云场景下，离线或自建数据库整体同步场景。
  
需要注意的是，分库分表与整库迁移能力会根据不同region的上线支持情况有所不同，具体支持情况以页面为准。以下是针对OBS的支持迁移场景概览：
| 支持迁移场景 | 单表读取 | 单表写入 | 分库分表读取 | 分库分表写入 | 整库读取 | 整库写入 |
|:---|:---|:---|:---|:---|:---|:---|
| 是否支持   | √    | √    | x      | √      | x    | x    |
   
#### 核心能力速览
- **连接配置**
  
  | 配置项  | 支持情况    | 说明                                         |
  |:---|:---|:---|
  | 认证方式 | aksk、委托 | 支持AK/SK访问密钥认证，也支持IAM委托认证（通过委托授权服务角色访问OBS）。 |
     
  
- **读取能力**
  
  | 配置项    | 支持情况                                                                                                                                                                                        | 说明                                                                                                                                                                                                                                                                                                                |
  |:---|:---|:---|
  | 增量读取   | √                                                                                                                                                                                           | 支持配置【变量路径】+【调度】方式，实现按时间或文件变化触发增量同步。                                                                                                                                                                                                                                                                               |
  | 支持文件格式 | 二进制 CSV JSON PARQUET ORC | 支持原始二进制文件读取，适用于源目的端均为文件系统的搬迁。 支持标准CSV格式，支持识别分隔符、编码方式。 支持JSON结构解析，抽取JSON多字段能力。 支持列式存储格式Parquet，支持原生的Parquet文件读取能力。 支持列式存储格式ORC，支持原生的ORC文件读取能力。 |
  | 分片并发   | √                                                                                                                                                                                           | 支持按文件进行多并发读取，多线程并行抽取，显著提升吞吐效率。                                                                                                                                                                                                                                                                                    |
  | 脏数据处理  | √                                                                                                                                                                                           | 支持异常数据写入脏数据桶，避免因少量异常数据导致作业失败。                                                                                                                                                                                                                                                                                     |
  | 自定义字段  | √                                                                                                                                                                                           | 可在任务级追加计算列、常量列或脱敏函数，满足个性化业务需求。                                                                                                                                                                                                                                                                                    |
     
  
- **写入能力**
  
  | 配置项    | 支持情况                                                                                                                                                                                      | 说明                                                                                                                                                                                                                                                                                                                  |
  |:---|:---|:---|
  | 支持文件格式 | 二进制 CSV JSON PARQUET ORC | 支持原始二进制文件写入，适用于源目的端均为文件系统的搬迁。 支持标准CSV格式，支持识别分隔符、编码方式。 支持JSON结构解析，抽取JSON多字段能力。 支持列式存储格式Parquet，支持原生的Parquet文件写入能力。 支持列式存储格式ORC，支持原生的ORC文件写入能力。 |
  | 文件压缩   | √                                                                                                                                                                                         | 支持ORC/Parquet文件写入压缩能力。                                                                                                                                                                                                                                                                                              |
  | 脏数据处理  | x                                                                                                                                                                                         | 支持异常数据写入脏数据桶，避免因少量异常数据导致作业失败，暂不支持。                                                                                                                                                                                                                                                                                  |
     
  
 
#### 创建数据源
在DataArts Studio管理中心新建相应的数据源，详情请参见[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0009.html)。
#### 创建数据集成离线作业
在DataArts Studio数据开发中新建OBS集成作业，详情请参见[新建离线处理集成作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1458.html)。
#### 最佳实践
[配置OBS增量读取最佳实践](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1545.html)
[OBS委托方式对接最佳实践](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1546.html)
