當您需要將大批量資料以附件(SQL、CSV、Excel)形式快速匯入資料庫時,可以使用DMS的資料匯入功能。
前提條件
資料庫類型如下:
MySQL:RDS MySQL、PolarDB MySQL版、MyBase MySQL、PolarDB分布式版、AnalyticDB for MySQL、其他來源MySQL。
SQL Server:RDS SQL Server、MyBase SQL Server、其他來源SQL Server。
PostgreSQL:RDS PostgreSQL、PolarDB PostgreSQL版、MyBase PostgreSQL、AnalyticDB for PostgreSQL、其他來源PostgreSQL。
MariaDB:RDS MariaDB、其他來源MariaDB。
OceanBase。
PolarDB PostgreSQL版(相容Oracle)。
達夢資料庫。
DB2。
Oracle。
Redis。
MongoDB。
待匯入資料的資料庫已登入DMS。具體操作,請參見登入資料庫。
已有目標資料庫的變更許可權。
注意事項
單次匯入的SQL、CSV、Excel類型的檔案不能超過5 GB。
DMS支援上傳zip類型的附件。如果您需要在同一個工單中匯入多個檔案,可以將多個檔案放在一個zip中,再進行上傳。
資料匯入功能暫不支援在同一個工單對多個資料庫進行變更操作,如需對多個資料庫進行變更請提交普通資料變更工單。具體操作,請參見普通資料變更。
若批量資料匯入指令碼中包含了結構變更SQL,即使執行個體已開啟無鎖結構變更,該結構變更SQL也只能通過原生方式執行,不會通過無鎖結構變更的方式執行。
為避免執行批量資料匯入處理程序中影響資料庫效能,建議您使用效能較好的SQL語句,如
INSERT
,主鍵索引的UPDATE
和DELETE
。
操作步驟
本操作以管控模式為安全協同的RDS MySQL資料庫為例介紹配置流程。
- 登入Data Management 5.0。
單擊控制台左上方的表徵圖,選擇
。說明若您使用的是非極簡模式的控制台,在頂部功能表列中,選擇
。在資料變更工單申請頁面,配置工單參數資訊。部分參數說明如下:
參數項
說明
資料庫
資料匯入的目標資料庫。僅支援選擇一個資料庫。
說明管控模式為自由操作或穩定變更的執行個體資料庫需要登入後方可選擇。
執行方式
工單的執行方式,系統預設選擇審批通過後,提交者執行。其他方式:
審批通過後,自動執行。
最後一個審批人執行。
檔案編碼
資料庫的檔案編碼,系統預設選擇自動識別。其他取值:
UTF-8。
GBK。
ISO-8859-1。
匯入模式
資料匯入模式,當前支援兩種匯入模式:
極速模式:在執行階段讀取檔案,將SQL語句直接執行到指定的目標庫。該模式安全性相比安全模式要低,但是執行時效較高。
說明安全規則配置預設未開啟支援極速模式匯入資料。您可以在執行個體關聯的
中開啟該檢測項。安全模式:預檢查階段會解析檔案並將SQL或CSV資料緩衝入庫,執行時再從緩衝庫中讀出來執行到指定的目標庫。該模式安全性較好,但是執行時效相比極速模式要低。
檔案類型
選中匯入資料的檔案類型:
SQL指令碼:安全協同模式下,預設僅放開INSERT和REPLACE命令類型。如需調整,可以由DBA或管理員在安全規則 > SQL變更 > 批量資料匯入中修改。
CSV格式:檔案中的分隔字元必須為逗號。
Excel格式:Excel檔案中可以有表頭(屬性),也可以直接是資料。
目標表
選擇匯入資料的目標表。
說明當檔案類型選擇CSV或Excel格式時,會出現該參數項。
資料位元置
選擇資料的位置:
第1行為屬性:表格首行是欄位名。
第1行為資料:表格首行是資料。
寫入方式
選擇檔案的寫入方式:
INSERT:插入資料時資料庫會檢查主鍵(PrimaryKey),如果出現重複會報錯。
INSERT_IGNORE:如果表中已經存在相同的記錄,則忽略當前新資料。
REPLACE_INTO:如果表中已經有某行資料(根據主鍵或者唯一索引判斷),則先刪除此行資料,然後插入新的資料。
說明RDS MySQL、PolarDB MySQL版、PolarDB分布式版、AnalyticDB for MySQL、OceanBase資料庫類型支援3種寫入方式:
INSERT INTO
、INSERT IGNORE
、REPLACE INTO
。其他資料庫僅支援INSERT INTO
寫入。附件
支援上傳本地檔案和上傳OSS檔案。
如果您需要上傳儲存在OSS中的檔案,則首先需要將目標OSS資料來源錄入至DMS。錄入完成後,再單擊上傳OSS檔案,選擇目標Bucket並填入檔案路徑(例如
examplefolder/example.sql
)。說明支援SQL、CSV、TXT、XLSX和ZIP檔案類型。
匯入的附件最大不能超過5 GB。
錄入OSS資料來源的操作,請參見雲資料庫錄入。
其他選項(可選)
選擇是否忽略異常報錯。
不忽略(不選中):系統預設。系統遇到異常會停止執行後續SQL並報錯。
忽略(選中):系統執行失敗會忽略異常,並繼續執行後續SQL。
復原SQL(可選)
文本:在下方輸入框中填入復原SQL。
附件:上傳復原SQL檔案。
說明支援SQL、TXT和ZIP檔案類型。
復原檔案最大不能超過15 MB。
變更相關人(可選)
設定的相關人員都可以查看工單,並協同工作,非相關人員則不能查看工單(管理員、DBA除外)。
單擊提交申請,等待系統預檢查通過,如果預檢查失敗,請根據提示檢查失敗原因後單擊重試。
說明系統會預檢查您上傳的SQL,如果是CSV檔案,會產生相應的
INSERT
語句。若在預檢查的類型檢查階段出現報錯,需要根據報錯資訊調整執行個體關聯的安全規則。具體操作,請參見資料變更。
在審批地區,單擊提交審批,在提示對話方塊中單擊確認。
待審批通過後,在執行地區,單擊執行變更。
在任務設定對話方塊中,選擇工單的執行方式。
執行方式如下:
立即執行:系統預設。單擊確定執行後,立即執行工單。
定時執行:選擇任務開始執行時間。單擊確定執行後,系統會在設定的時間自動執行任務。
說明執行期間,系統流式讀取已解析的SQL,分批執行到資料庫(每批大小1 MB)。
您可以在執行地區,查看任務執行狀態、任務SQL檢查詳情和調度日誌。
已暫停任務,重啟後,會根據匯入模式選擇從頭執行任務,還是從暫停位置執行。
極速模式:暫停任務後重啟,將從頭開始執行指令碼或匯入資料檔案。
安全模式:暫停任務後重啟,將從暫停位置繼續執行指令碼或匯入資料檔案。
當出現任務執行完成提示後,表示資料匯入工單完成。
(可選)查詢匯入的資料。
前往SQL Console頁面查詢匯入的資料。具體操作,請參見SQL Console初體驗。
樣本檔案
常見問題
Q:執行資料匯入時出現permission denied for schema XXXXX報錯如何處理?
A:報錯顯示當前在DMS登入的資料庫帳號許可權不足。您可以嘗試在DMS中登入高許可權的資料庫帳號,再重試匯入,或嘗試將資料匯入到其他公用資料庫。切換資料庫帳號操作,請參見編輯執行個體資訊。
如果上述方法仍無法解決問題,可以嘗試使用Data Transmission Service進行資料移轉。更多資訊,請參見遷移方案概覽。
Q:資料匯入工單預檢查失敗,提示不允許提交XXXX變更語句,該如何處理?
A:管理員或DBA需要修改SQL變更安全規則,允許在匯入時執行某類型SQL。如下以補充允許提交CREATE_TABLE為例:
在DMS控制台中,找到並進入安全規則功能頁面。
編輯目標規則,在規則詳情頁左側地區單擊SQL變更。
選擇批量資料匯入規則,並單擊允許大量匯入插入語句規則右側的編輯。
增加CREATE_TABLE類型的SQL,單擊提交。更多資訊,請參見SQL變更。
規則修改後,請您返回到資料匯入工單詳情頁,在預檢查地區單擊重試。
Q:如果待上傳的附件大於5 GB,該如何進行操作?
A:您可以根據實際的業務情況選擇操作方法:
拆分附件,提交多個工單進行上傳。
使用Navicat遠端連線資料庫,再進行上傳附件。