Data Management Service (DMS) のデータインポート機能を使用すると、ファイル (SQL、CSV、Excel) からデータベースに大量のデータを迅速にインポートできます。
前提条件
データベースが次のいずれかのタイプであること:
MySQL: RDS for MySQL、PolarDB for MySQL、MyBase for MySQL、PolarDB-X、AnalyticDB for MySQL、またはその他の MySQL ソース。
SQL Server: RDS for SQL Server、MyBase for SQL Server、またはその他の SQL Server ソース。
PostgreSQL: RDS for PostgreSQL、PolarDB for PostgreSQL、MyBase for PostgreSQL、AnalyticDB for PostgreSQL、またはその他の PostgreSQL ソース。
MariaDB: RDS for MariaDB またはその他の MariaDB ソース。
OceanBase。
PolarDB for PostgreSQL (Oracle 互換)。
DM。
DB2。
Oracle。
Redis。
MongoDB。
DMS コンソールでデータベースインスタンスにログインしていること。
ターゲットデータベースに対する変更権限を持っていること。
制限事項
インポートする単一の SQL、CSV、または Excel ファイルのサイズは 5 GB を超えることはできません。
DMS は ZIP 形式の添付ファイルのアップロードをサポートしています。単一のチケットで複数のファイルをインポートするには、アップロード前にファイルを単一の
.zipアーカイブに圧縮してください。単一のデータインポートチケットで複数のデータベースを変更することはできません。複数のデータベースを変更するには、通常のデータ変更チケットを申請してください。
軽微なデータ変更の場合は、安定性を確保するために、通常のデータ変更または DML ロックフリー変更チケットを使用してください。
一括データインポートスクリプトにスキーマ変更文が含まれている場合、これらの文はネイティブモードで実行されます。インスタンスでロックフリースキーマ変更が有効になっていても、ロックフリーモードでは実行されません。
一括データインポート中にデータベースのパフォーマンスに影響を与えないように、
INSERTや、プライマリキーを使用するUPDATEまたはDELETE文などの効率的な SQL 文を使用してください。インポートする CSV または Excel ファイル (サンプルファイル) には、フィールド名とフィールド値のみを含める必要があります。ファイルに他のコンテンツが含まれていると、インポートは失敗します。
操作手順
この例では、セキュリティコラボレーションコントロールモードの ApsaraDB RDS for MySQL データベースを使用します。
- DMS コンソール V5.0 にログインします。
DMS コンソールの左上隅にある
アイコンにポインターを合わせ、 を選択します。説明DMS コンソールを通常モードで使用する場合は、上部のナビゲーションバーで を選択します。
[データ変更チケット] ページで、パラメーターを設定します。次の表に、主要なパラメーターの一部を示します。
パラメーター
説明
データベース
ターゲットデータベースを検索します。データベースは 1 つしか選択できません。
説明[柔軟な管理] または [安定的な変更] コントロールモードのデータベースインスタンスをドロップダウンリストに表示するには、まず DMS でそれらにログインする必要があります。
データベース接続エンドポイント (例:
test_db@rm-2zegs****.mysql.rds.aliyuncs.com:3306 [example]) を入力して検索することもできます。
ビジネス背景
レビュープロセスを効率化するため、インポートのビジネス背景を記載してください。
ファイルエンコーディング
インポートファイルの文字コードです。システムはデフォルトで [自動識別] を選択します。その他の値:
UTF-8
GBK
ISO-8859-1
インポートモード
データインポートモードです。2 つのモードがサポートされています:
[スピードモード]:実行フェーズでファイルを読み取り、指定されたターゲットデータベースに対して SQL 文を直接実行します。このモードはセキュリティモードよりも高速ですが、安全性は劣ります。
説明デフォルトでは、セキュリティルールは [スピードモード] でのデータインポートを許可しません。管理者または DBA は、インスタンスの でこのチェック項目を有効にできます。
[セキュリティモード]:事前チェックフェーズでファイルを解析し、SQL または CSV データをキャッシュに保存してから、キャッシュからタスクを実行します。このモードはスピードモードよりも安全ですが、速度は遅くなります。
ファイルタイプ
インポートファイルのタイプを選択します:
[SQL スクリプト]:セキュリティコラボレーションモードでは、デフォルトで
INSERTおよびREPLACEコマンドタイプのみが許可されます。これを変更するには、DBA または管理者が [セキュリティルール] > [SQL 変更] > [一括データインポート] で調整できます。[CSV]:ファイル内のデリミタはカンマである必要があります。
[Excel]:Excel ファイルにはヘッダー行 (列名用) を含めることも、データのみを含めることもできます。
説明CSV または Excel ファイルの場合、ターゲットテーブルはすでに存在している必要があります。
転送先テーブル名
データインポートのターゲットテーブルを選択します。
説明このパラメーターは、[ファイルタイプ] を CSV または Excel に設定した場合にのみ使用できます。
データロケーション
データの開始位置を指定します:
1 番目の動作属性:テーブルの 1 行目にはフィールド名が含まれています。
1 番目の行動データ: テーブルの 1 行目にはデータが含まれています。
説明このパラメーターは、[ファイルタイプ] を CSV または Excel に設定した場合にのみ使用できます。
書き込みモード
データの書き込み方法:
[INSERT]:データベースは挿入中にプライマリキーをチェックします。重複キーが見つかった場合、エラーが報告されます。
[INSERT_IGNORE]:同じキーを持つレコードがすでに存在する場合、新しいデータは無視されます。
[REPLACE_INTO]:テーブル内の行が同じプライマリキーまたは一意なインデックス値を持つ場合、既存の行が削除され、新しい行が挿入されます。
説明このパラメーターは、[ファイルタイプ] を CSV または Excel に設定した場合にのみ使用できます。
RDS for MySQL、PolarDB for MySQL、PolarDB-X、AnalyticDB for MySQL、および OceanBase データベースは、
INSERT INTO、INSERT IGNORE、REPLACE INTOの 3 つの書き込み方法すべてをサポートしています。他のデータベースはINSERT INTOのみをサポートしています。
添付
[ファイルをアップロード] (ローカルファイル) と [OSS オブジェクトをアップロード] をサポートしています。
OSS からファイルをアップロードするには、まず DMS でターゲットの OSS データソースを追加する必要があります。その後、[OSS オブジェクトをアップロード] をクリックし、ターゲットバケットを選択して、ファイルパス (例:
examplefolder/example.sql) を入力します。説明サポートされているファイルタイプは SQL、CSV、TXT、XLSX、ZIP です。
添付ファイルのサイズは 5 GB を超えることはできません。
OSS データソースの追加については、「ApsaraDB データベースの追加」をご参照ください。
その他のオプション (任意)
例外を無視するかどうかを選択します。
未チェック (デフォルト):例外が発生した場合、システムは後続の SQL 文の実行を停止し、エラーを報告します。
チェック済み:システムは例外を無視し、後続の SQL 文の実行を継続します。
[送信] をクリックし、事前チェックが完了するまで待ちます。事前チェックが失敗した場合は、エラーメッセージを確認して問題を解決し、[再試行] をクリックします。
説明システムはアップロードされた SQL ファイルを事前チェックします。CSV ファイルをアップロードした場合、システムは対応する
INSERT文を生成します。事前チェックフェーズのタイプチェック中にエラーが発生した場合は、エラーメッセージに基づいてインスタンスに関連付けられているセキュリティルールを調整できます。詳細については、「データ変更」をご参照ください。
[承認] セクションで [承認を申請] をクリックし、[プロンプト] ダイアログボックスで [OK] をクリックします。
チケットが承認された後、[実行] セクションで [変更を実行] をクリックします。
[タスク設定] ダイアログボックスで、実行方法を選択します。
実行方法は次のとおりです:
[即時実行]:デフォルト。 [実行の確認] をクリックすると、タスクはすぐに実行されます。
[スケジュール実行]:タスクの開始時刻を選択します。[実行の確認] をクリックすると、タスクは指定された時刻に自動的に実行されます。
説明実行中、システムは解析された SQL をストリームで読み取り、データベースでバッチ実行します。各バッチのサイズは 1 MB です。
[実行] セクションで、タスクのステータス、SQL チェック詳細、スケジューリングログを表示できます。
一時停止したタスクを再開した場合の動作は、インポートモードによって異なります:
スピードモード:スクリプトの実行またはデータファイルのインポートが最初から開始されます。
セキュリティモード:スクリプトの実行またはデータファイルのインポートが一時停止した時点から再開されます。
タスクが完了すると、完了メッセージが表示されます。
(オプション) インポートされたデータをクエリします。
SQL コンソールページに移動して、インポートされたデータをクエリします。詳細については、「SQL コンソールの使用開始」をご参照ください。
サンプルファイル
よくある質問
Q:データインポート中に「permission denied for schema XXXXX」というエラーが発生した場合はどうすればよいですか。
A:このエラーは、DMS へのログインに使用したデータベースアカウントに十分な権限がないことを示しています。特権データベースアカウントで DMS にログインしてインポートを再試行するか、別のパブリックデータベースにデータをインポートしてみてください。データベースアカウントを切り替えるには、「インスタンス情報の編集」をご参照ください。
問題が解決しない場合は、Data Transmission Service (DTS) を使用してデータを移行できます。詳細については、「移行ソリューションの概要」をご参照ください。
Q:データインポートチケットが事前チェックに失敗し、「XXXX 変更文の送信は許可されていません」というメッセージが表示された場合はどうすればよいですか。
A:管理者または DBA は、インポート中にその SQL タイプを許可するように SQL 変更のセキュリティルールを変更する必要があります。次の例は、
CREATE_TABLE文を許可する方法を示しています:DMS コンソールで、[セキュリティルール] ページに移動します。
ターゲットルールを編集します。ルール詳細ページで、左側のペインにある [SQL 修正] をクリックします。
[一括データインポートルール] を選択し、[insert 文の一括インポートを許可] ルールの右側にある [編集] をクリックします。
CREATE_TABLESQL タイプを追加し、[送信] をクリックします。詳細については、「SQL 変更」をご参照ください。ルールが変更された後、データインポートチケットの詳細ページに戻り、[事前チェック] セクションの [再試行] をクリックします。
Q:アップロードするファイルが 5 GB を超える場合はどうすればよいですか。
A:次のいずれかの方法を選択できます:
ファイルをより小さなファイルに分割し、複数のチケットを申請してアップロードします。
Navicat を使用してデータベースにリモート接続し、ファイルをアップロードします。
Q:誤ってインポートしたデータを削除するにはどうすればよいですか。
A:削除方法はデータ量によって異なります。
少量のデータ
DMS SQL コンソールで
DELETE文を実行できます。詳細については、「SQL 文を使用したテーブルデータの変更」をご参照ください。大量のデータ
通常のデータ変更または DML ロックフリー変更チケットを申請して、テーブルデータを削除できます。DML ロックフリー変更機能を使用すると、テーブルをロックせずに大量のテーブルデータを変更できます。詳細については、「通常のデータ変更」および「DML ロックフリー変更」をご参照ください。