为满足多样化的数据导入需求,云原生数据仓库AnalyticDB MySQL版提供了多种数据导入方式,包括:通过外表导入数据、使用DataWorks导入数据和利用JDBC通过程序导入数据等。本文介绍各导入方式的特性及适用场景,帮助您选择正确的数据导入方式。
通过外表导入数据
AnalyticDB MySQL内置不同数据源的访问链路,支持通过创建外表来映射外部数据源,并发地读取外部数据并导入到AnalyticDB MySQL。通过外表导入数据会最大限度地利用集群资源,实现高性能数据导入。
基本特性
- 适合大批量数据:导入链路批量操作,适合单任务进行大量数据导入的场景。
- 资源消耗大:利用集群资源进行高性能导入,建议在业务低峰期使用。
- 批量可见:数据导入任务完成前数据不可见,任务完成后导入的数据批量可见。
- 分区覆盖:通过外表导入的数据分区会覆盖表中已存在的同一分区。
- 构建索引:通过外表导入会同步构建索引,导入任务完成则生成索引,可提升查询性能。
常见使用场景
- 数仓初始化
当存在TB级数据需要初始化导入到AnalyticDB MySQL进行分析,建议先将数据存放在OSS或者HDFS,再通过外表高效导入。
- 离线数仓加速
离线数据运行在MaxCompute等离线数仓上,单天数据增量达到几十GB甚至TB级,需要每天导入数据到AnalyticDB MySQL进行数据加速分析。
支持的外表数据源与使用方法
导入性能调优
如何提升外表数据的导入性能,请参见通用外表导入数据调优。
通过DataWorks导入数据
常见使用场景
- 分钟/小时级数据导入
需要每分钟或每小时抽取少量数据到AnalyticDB MySQL进行数据分析。
- 多种异构数据源导入
需要导入OTS、Redis、PostgreSQL等多种数据源的数据到AnalyticDB MySQL。
使用方法
- 配置源端数据源。支持的数据源包括:RDS MySQL、Oracle、SQL Server、OSS、MaxCompute及HDFS。
- 配置AnalyticDB MySQL 3.0数据源。
- 配置同步任务中的数据来源和去向。
导入性能调优
如何提升DataWorks导入数据的性能,请参见通过DataWorks导入数据调优。
通过JDBC使用程序导入数据
在数据清洗或复杂非结构化数据场景下,当外表和DataWorks导入无法满足定制化导入需求时,可以编写程序通过JDBC导入数据。
常见使用场景
- 数据预处理后导入
业务端实时产生日志文件,需要对日志文件进行自动化解析并实时导入AnalyticDB MySQL。
- 非云上数据导入
当数据无法上传到OSS、HDFS或者MaxCompute时,需要将本地数据导入AnalyticDB MySQL。
使用方法与建议
- 应用程序连接AnalyticDB MySQL,需要配置支持的JDBC驱动,详情请参见MySQL JDBC驱动版本。
- 导入数据量大,且需长时间操作时,建议配置连接池,详情请参见Druid连接池配置。
- 应用导入支持批量导入和并发导入,以获得更高的导入性能。
- 关于流式数据导入,请参见通过开源Flink导入数据至AnalyticDB MySQL。
- 关于非定制化本地数据导入,请参见使用LOAD DATA导入本地数据、使用AnalyticDB MySQL版导入工具导入本地数据。
导入性能调优
如何提升使用应用程序导入数据的性能,请参见通过JDBC使用程序导入数据调优。