為滿足多樣化的資料匯入需求,AnalyticDB for MySQL提供了多種資料匯入方式,包括:通過外表匯入資料、通過DataWorks匯入資料、通過DTS匯入資料以及使用JDBC通過程式匯入資料等。您可以通過本文瞭解各匯入方式的特性及適用情境,協助您選擇合適的資料匯入方式。
通過外表匯入資料
AnalyticDB for MySQL內建不同資料來源的訪問鏈路,支援通過建立外表來映射外部資料源,並發地讀取外部資料並匯入到AnalyticDB for MySQL。通過外表匯入資料會最大限度地利用叢集資源,實現高效能資料匯入。
基本特性
適合大批量資料:匯入鏈路大量操作,適合單任務進行大量資料匯入的情境。
資源消耗大:利用叢集資源進行高效能匯入,建議在業務低峰期使用。
批量可見:資料匯入任務完成前資料不可見,任務完成後匯入的資料批量可見。
分區覆蓋:通過外表匯入的資料分區會覆蓋表中已存在的同一分區。
構建索引:通過外表匯入會同步構建索引,匯入任務完成則產生索引,可提升查詢效能。
常見使用情境
數倉初始化
當存在TB級資料需要初始化匯入到AnalyticDB for MySQL進行分析,建議先將資料存放在OSS或者HDFS,再通過外表高效匯入。
離線數倉加速
離線資料運行在MaxCompute等離線數倉上,單天資料增量達到幾十GB甚至TB級,需要每天匯入資料到AnalyticDB for MySQL進行資料加速分析。
使用方法
資料匯入方式分為常規匯入(預設)和彈性匯入。常規匯入在計算節點中讀取來源資料,然後在儲存節點中構建索引,消耗計算資源和儲存資源。彈性匯入在Serverless Spark Job中讀取來源資料和構建索引,消耗Job型資源群組的資源,併產生一定費用。具體對比如下:
匯入效能調優
如何提升外表匯入資料的效能,請參見通用外表匯入資料調優。
通過DataWorks匯入資料
DataWorks提供了可視化的資料匯入方式,可以將多種資料來源匯入到AnalyticDB for MySQL。相對於通過外表匯入資料的方法,DataWorks匯入資料更為輕量化,適合資料量相對較小的資料匯入情境。
不建議通過DataWorks匯入大量資料。如果存在數百GB以上的資料匯入,建議通過外表匯入資料。詳情請參見通過外表匯入資料。
常見使用情境
分鐘/小時級資料匯入
需要每分鐘或每小時抽取少量資料到AnalyticDB for MySQL進行資料分析。
多種異構資料來源匯入
需要匯入OTS、Redis、PostgreSQL等多種資料來源的資料到AnalyticDB for MySQL。
使用方法
通過DataWorks匯入資料分為3個步驟。
配置源端資料來源。支援的資料來源包括:RDS for MySQL、Oracle、RDS for SQL Server、OSS、MaxCompute及HDFS。
匯入效能調優
如何提升DataWorks匯入資料的效能,請參見通過DataWorks匯入資料調優。
通過DTS匯入資料
Data Transmission Service (DTS)是阿里雲提供的即時資料流服務,支援關係型資料庫(RDBMS)、非關係型的資料庫(NoSQL)、資料多維分析(OLAP)等資料來源間的資料互動。相對於傳統資料移轉或同步工具,DTS為您提供功能更豐富、傳輸效能更強、易用性更高且安全可靠的服務,協助您簡化複雜的資料互動工作,專註於上層的業務開發。您可以將多種資料來源,通過DTS匯入到AnalyticDB for MySQL中,輕鬆實現資料轉送和即時分析。
常見使用情境
秒級即時同步
例如把業務庫RDS for MySQL、PolarDB for MySQL資料庫的資料即時同步到AnalyticDB for MySQL中進行分析。
多源匯聚
例如業務有多個RDS for MySQL或PolarDB for MySQL執行個體,可以將多個執行個體的資料同步到一個AnalyticDB for MySQL叢集中進行分析。且通過DTS提供的多表合并功能,具有相同結構的多個源表可以同步到AnalyticDB for MySQL叢集的一張表中進行後續分析。
使用方法
通過JDBC使用程式匯入資料
在資料清洗或複雜非結構化資料情境下,當外表和DataWorks匯入無法滿足定製化匯入需求時,可以編寫程式通過JDBC匯入資料。
常見使用情境
資料預先處理後匯入
業務端即時產生記錄檔,需要對記錄檔進行自動化解析並即時匯入AnalyticDB for MySQL。
非雲上資料匯入
當資料無法上傳到OSS、HDFS或者MaxCompute時,需要將本機資料匯入AnalyticDB for MySQL。
使用方法與建議
應用程式串連AnalyticDB for MySQL,需要配置支援的JDBC驅動,詳情請參見MySQL JDBC驅動版本。
匯入資料量大,且需長時間操作時,建議配置串連池,詳情請參見Druid串連池配置。
應用匯入支援大量匯入和並發匯入,以獲得更高的匯入效能。
關於流式資料匯入,請參見Flink資料匯入。
關於非定製化本機資料匯入,請參見通過LOAD DATA匯入至數倉版、通過匯入工具匯入至數倉版。
匯入效能調優
如何提升使用應用程式匯入資料的效能,請參見通過JDBC使用程式匯入資料調優。
通過資料同步功能匯入資料
AnalyticDB for MySQL自身提供了豐富的資料同步功能,包括資料管道服務(APS),元數探索服務,Hive資料移轉等功能,可用於發現和組織OSS中繼資料、即時同步SLS、Kafka資料到AnalyticDB for MySQL的資料湖或資料倉儲,以及遷移Hive資料到OSS並進行後續資料分析。
常見使用情境
低成本儲存和分析情境
當您希望將日誌(SLS)和訊息類(Kafka)資料進行長期低成本儲存以及大規模分析時,可以通過資料管道服務(APS)將SLS和Kafka資料即時同步至AnalyticDB for MySQL的資料湖或資料倉儲中。
中繼資料發現情境
OSS上有大量資料檔案,但缺少相應的中繼資料,這些資料檔案難以管理和分析。通過AnalyticDB for MySQL提供的中繼資料探索服務,可以自動建立中繼資料層次(庫、表、分區),並自動識別資料格式和欄位資訊,產生表結構。通過建立中繼資料,可以讓資料被其他分析引擎識別並進行後續分析。
Hive資料移轉情境
當您希望由AnalyticDB for MySQL來管理(包括中繼資料管理和後續分析)儲存在Hive中的資料時,可以通過Hive資料移轉功能將Hive資料移轉到OSS,並自動組織中繼資料進行後續分析。