
# DWS数据源
本数据集成服务全面支持华为云DWS企业级云上数据仓库服务，支持DWS主流版本，可满足不同用户在多种部署环境下的数据同步需求。
#### 使用前准备及限制
- **网络要求**
  DWS数据源必须与CDM网络进行通讯，以确保数据传输的顺畅性。详情请参见[网络打通](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_7765.html)。
  
- **权限要求**
  DWS读写权限：
  - **读权限** ：
    - 从DWS读取数据，可以为数据集成服务的IAM用户或用户组授予**DWS ReadOnlyAccess**系统策略，该策略允许用户查看数据仓库服务资源。
    
    - 对于更精细的权限控制，可以创建自定义策略，根据具体需求授予如查询数据库、查询表等读取相关操作的权限。
     
  
  - **写权限** ：
    - 向DWS写入数据，需要为数据集成服务的IAM用户或用户组授予**DWS FullAccess** 或**DWS Administrator**系统策略，该策略拥有数据仓库服务的所有权限。
    
    - 可以根据实际需求创建自定义策略，授予如插入数据、创建表、更新数据等写入相关操作的权限。
     
    
 
#### 支持的数据类型
DWS读写端兼容的字段类型如下所示。由于各版本DWS支持的字段类型能力可能不同，本数据集成服务以8.1.X版本为基准，覆盖并适配主流类型及其变体：
| 类别     | 字段类型                        | 读取支持 | 写入支持                                   |
|:---|:---|:---|:---|
| 整数类型   | TINYINT（别名:INT1）            | √    | √                                      |
| 整数类型   | SMALLINT (别名:INT2)          | √    | √                                      |
| 整数类型   | INTEGER (别名:INT4)           | √    | √                                      |
| 整数类型   | BINARY_INTEGER              | √    | √                                      |
| 整数类型   | BIGINT (别名:INT8)            | √    | √                                      |
| 整数类型   | INT                         | √    | √                                      |
| 浮点型    | NUMERIC                     | √    | √                                      |
| 浮点型    | DECIMAL                     | √    | √                                      |
| 浮点型    | NUMBER                      | √    | √                                      |
| 浮点型    | REAL                        | √    | √                                      |
| 浮点型    | FLOAT                       | √    | √                                      |
| 浮点型    | FLOAT4                      | √    | √                                      |
| 浮点型    | DOUBLE PRECISION            | √    | √                                      |
| 浮点型    | FLOAT8                      | √    | √                                      |
| 浮点型    | BINARY_DOUBLE               | √    | √                                      |
| 浮点型    | DEC                         | √    | √                                      |
| 序列整型   | SMALLSERIAL                 | √    | √                                      |
| 序列整型   | SERIAL                      | √    | √                                      |
| 序列整型   | BIGSERIAL                   | √    | √                                      |
| 货币类型   | MONEY                       | √    | √                                      |
| 布尔类型   | BOOL                        | √    | √                                      |
| 布尔类型   | BOOLEAN                     | √    | √                                      |
| 字符类型   | CHAR                        | √    | √                                      |
| 字符类型   | BPCHAR                      | √    | √                                      |
| 字符类型   | CHARACTER                   | √    | √                                      |
| 字符类型   | NCHAR                       | √    | √                                      |
| 字符类型   | VARCHAR （别名:VARCHAR2）       | √    | √                                      |
| 字符类型   | CHARACTER VARYING           | √    | √                                      |
| 字符类型   | VARCHAR2                    | √    | √                                      |
| 字符类型   | NVARCHAR2                   | √    | √                                      |
| 字符类型   | CLOB                        | √    | √                                      |
| 字符类型   | TEXT                        | √    | √                                      |
| 日期时间   | DATE                        | √    | √                                      |
| 日期时间   | TIME                        | √    | √                                      |
| 日期时间   | TIME WITHOUT TIME ZONE      | √    | √                                      |
| 日期时间   | TIME WITH TIME ZONE         | √    | √                                      |
| 日期时间   | TIMESTAMP                   | √    | √                                      |
| 日期时间   | TIMESTAMP WITHOUT TIME ZONE | √    | √                                      |
| 日期时间   | TIMESTAMP WITH TIME ZONE    | √    | √                                      |
| 日期时间   | SMALLDATETIME               | √    | √                                      |
| 日期时间   | INTERVAL                    | √    | √                                      |
| 比特     | BIT                         | √    | √                                      |
| 比特     | VARBIT                      | √    | √                                      |
| 二进制类型  | BLOB                        | √    | √（支持的写入方式为copy、upsert，不支持copy_upsert。） |
| 二进制类型  | RAW                         | √    | √（支持的写入方式为copy、upsert，不支持copy_upsert。） |
| 二进制类型  | BYTEA                       | √    | √（支持的写入方式为copy、upsert，不支持copy_upsert。） |
| JSON类型 | JSON                        | √    | √                                      |
   
#### 支持的迁移场景
数据集成离线同步支持以下三种同步方式，以满足不同数据迁移场景的需求：
- **单表同步**
  适用于数据入湖和数据上云场景下，表或文件级别的数据同步。
  
- **分库分表同步**
  适用于数据入湖和数据上云场景下，多库多表同步场景。
  
- **整库迁移**
  适用于数据入湖和数据上云场景下，离线或自建数据库整体同步场景。
  
需要注意的是，分库分表与整库迁移能力会根据不同region的上线支持情况有所不同，具体支持情况以页面为准。以下是针对DWS的支持迁移场景概览：
| 支持迁移场景 | DWS单表读取 | DWS单表写入 | DWS分库分表读取 | DWS分库分表写入 | DWS整库读取        | DWS整库写入 |
|:---|:---|:---|:---|:---|:---|:---|
| 是否支持   | √       | √       | x         | √         | √(仅部分region支持) | x       |
   
#### 核心能力速览
- **连接配置**
  
  | 配置项     | 支持情况 | 说明                                     |
  |:---|:---|:---|
  | 用户/AK   | √    | 支持用户AKSK认证，确保连接安全。                     |
  | SSL加密   | √    | 支持SSL加密，保障数据传输安全，当前仅支持云上RDS开启SSL认证。    |
  | SSL认证支持 | 单向认证 | 当前仅支持云上RDS开启SSL认证，通过标准华为云CA证书进行认证      |
  | 连接配置调优  | √    | 支持connectTimeout等连接配置调优，可根据实际需求优化连接性能。 |
  | 自定义驱动   | x    | 支持自定义驱动，提供更高的灵活性，暂不支持。                 |
     
  
- **读取能力**
  
  | 配置项    | 支持情况 | 说明                                                       |
  |:---|:---|:---|
  | 分片并发   | √    | 支持按主键或常见字段做水平分片，多线程并行抽取，显著提升吞吐效率。                        |
  | 脏数据处理  | √    | 支持异常数据写入脏数据桶，避免因少量异常数据导致作业失败。                            |
  | 自定义字段  | √    | 可在任务级追加计算列、常量列或脱敏函数，满足个性化业务需求。                           |
  | 增量读取   | √    | 支持where条件和SQL模式，可实现增量读取。                                 |
  | 流批读取方式 | 批读   | 支持批量读取，适用于中小数据量场景，可一次性处理数据，提高处理效率。                       |
  | 读取行数调优 | √    | 可根据需求在连接中配置【单次请求行数】，合理控制数据传输量，优化性能，避免因数据量过大导致的传输延迟或系统压力。 |
  | 视图读取   | √    | 支持从视图中读取数据，实现灵活的数据集成与处理。                                 |
     
  
- **写入能力**
  
  | 配置项    | 支持情况 | 说明                                                  |
  |:---|:---|:---|
  | 冲突解决   | √    | 支持copy/upsert等多种写入方式，可灵活处理数据冲突。                     |
  | 导入前后处理 | √    | 支持preSql/delete等操作，可在数据导入前后进行数据清洗和处理。               |
  | 并发写入   | √    | 支持并发写入，提升写入效率。                                      |
  | 写入行数调优 | √    | 可根据需求配置单次写入的行数，合理控制数据传输量，优化性能，避免因数据量过大导致的传输延迟或系统压力。 |
  | 脏数据处理  | √    | 支持异常数据写入脏数据桶，避免因少量异常数据导致作业失败。                       |
  | 编辑态建表  | √    | 在作业编辑过程中手动创建表。用户可以根据数据的结构和需求，提前定义表的结构、字段类型等进行表创建。   |
     
  
 
#### 创建数据源
在DataArts Studio管理中心新建相应的数据源，详情请参见[创建DataArts Studio数据连接](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_0009.html)。
#### 创建数据集成离线作业
在DataArts Studio数据开发中新建DWS集成作业，详情请参见[新建离线处理集成作业](https://support.huaweicloud.com/usermanual-dataartsstudio/dataartsstudio_01_1458.html)。
