さまざまなデータインポート要件を満たすために、AnalyticDB for MySQLでは、外部テーブル、DataWorks、data Transmission Service (DTS) 、またはJava Database Connectivity (JDBC) ベースのプログラムを使用してデータをインポートできます。 このトピックでは、適切なデータのインポート方法を選択するのに役立つ、前述のインポート方法の機能と使用シナリオについて説明します。
外部テーブルを使用したデータのインポート
AnalyticDB for MySQLを使用すると、さまざまなデータソースにアクセスし、外部テーブルを作成して外部データソースをマッピングできます。 これにより、外部データを同時に読み取り、そのデータをAnalyticDB for MySQLにインポートできます。 このデータインポート方法では、クラスターリソースを最大限に活用してインポートパフォーマンスを向上させます。
基本特性
この方法は、1つのジョブで大量のデータをインポートするのに適しています。
データインポートジョブは、高性能を確保するために大量のクラスターリソースを消費します。 オフピーク時にこの方法を使用することを推奨します。
インポートされたデータは、データインポートジョブの進行中には表示されず、ジョブが完了した後にのみ表示されます。
この方法でパーティションをインポートすると、同じ名前を使用する既存のパーティションのデータが上書きされます。
外部テーブルを使用してデータインポートジョブが完了すると、テーブルインデックスが作成され、クエリのパフォーマンスが向上します。
一般的なシナリオ
データウェアハウスでのデータ初期化
分析のためにテラバイトのデータを初期化してAnalyticDB for MySQLにインポートする場合は、データをOSSまたはHDFSに保存し、外部テーブルを使用してデータをインポートすることを推奨します。
バッチデータの高速分析
バッチデータは、MaxComputeなどのバッチデータウェアハウスに保存されます。 毎日、ギガバイトまたはテラバイトのデータがバッチデータウェアハウスからAnalyticDB for MySQLにインポートされ、分析が加速されます。
メソッド
通常のインポートまたはエラスティックインポート方法を使用してデータをインポートできます。 デフォルトでは、通常のインポート方法が使用されます。 通常のインポート方法を使用する場合、データは計算ノードから読み取られ、インデックスはストレージノードに作成されます。 通常のインポート方法は、コンピューティングリソースとストレージリソースを消費します。 elastic importメソッドを使用すると、Serverless Sparkジョブのデータが読み取られ、インデックスが作成されます。 エラスティックインポート方式は、ジョブリソースグループのリソースを消費し、料金を発生させます。 次の表に、通常のインポート方法とエラスティックインポート方法の比較を示します。
データインポートパフォーマンスの最適化
外部テーブルベースのデータインポート方法のパフォーマンスを向上させる方法については、「データインポートパフォーマンスの最適化」トピックの「外部テーブルを使用してデータをインポートするときのパフォーマンスの最適化」をご参照ください。
DataWorksを使用したデータのインポート
DataWorksは、さまざまなデータソースからAnalyticDB for MySQLにデータをインポートできる視覚化されたデータインポート方法を提供します。 外部テーブルと比較して、DataWorksは少量のデータのみをインポートする場合に適しています。
DataWorks数百ギガバイトのデータをインポートするには、DataWorksの代わりに外部テーブルを使用することを推奨します。 詳細については、このトピックの「外部テーブルを使用してデータをインポートする」をご参照ください。
一般的なシナリオ
1分または1時間ごとのデータインポート
分析のために、1分または1時間ごとに少量のデータをAnalyticDB for MySQLにインポートします。
複数の外部データソースからのデータインポート
Tablestore、Redis、PostgreSQLなどの複数のデータソースからAnalyticDB for MySQLにデータをインポートします。
変更方法
DataWorksを使用してデータをインポートするには、次の手順を実行します。
データソースを設定します。 RDS for MySQL、Oracle、RDS for SQL Server、OSS、MaxCompute、およびHDFSのデータソースがサポートされています。 詳細については、以下のトピックをご参照ください。
データインポートパフォーマンスの最適化
DataWorksベースのデータインポート方法のパフォーマンスを向上させる方法については、「データインポートパフォーマンスの最適化」トピックの「DataWorksを使用してデータをインポートするときのパフォーマンスの最適化」を参照してください。
DTSを使用したデータのインポート
Data Transmission Service (DTS) は、リアルタイムのデータストリーミングサービスです。 DTSは、リレーショナルデータベース管理システム (RDBMS) データベース、NoSQLデータベース、オンライン分析処理 (OLAP) データベースなどのデータソース間のデータ転送をサポートします。 DTSには、従来のデータ移行および同期ツールに比べて、さまざまな機能、高性能、セキュリティ、信頼性、使いやすさなどの利点があります。 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にインポートします。
使用上の注意
JDBCベースのプログラムを使用してAnalyticDB for MySQLに接続する場合、適切なJDBCドライバを設定する必要があります。 詳細については、Javaトピックの「サポートされているMySQL JDBCドライバーのバージョン」をご参照ください。
大量のデータをインポートし、インポートジョブの完了に必要な時間を短縮する場合は、接続プールを設定することをお勧めします。 詳細については、「Druid接続プール」をご参照ください。
このデータインポートメソッドは、バッチインポートと同時インポートをサポートし、インポートパフォーマンスを向上させます。
ストリーミングデータをインポートする方法については、「Apache Flinkからデータをインポートする」をご参照ください。
カスタマイズされていないオンプレミスデータをインポートする方法については、「LOAD dataを使用してDATA Warehouse Editionにデータをインポートする」および「AnalyticDB For MySQLインポートツールを使用してdata Warehouse Editionにデータをインポートする」をご参照ください。
データインポートパフォーマンスの最適化
JDBCベースのプログラムを使用するデータインポート方法のパフォーマンスを向上させる方法については、「データインポートのパフォーマンスの最適化」トピックの「JDBCベースのプログラムを使用してデータをインポートするときのパフォーマンスの最適化」を参照してください。
データ同期を使用したデータのインポート
AnalyticDB for MySQLは、AnalyticDBパイプラインサービス (APS) 、メタデータ検出、Hiveデータ移行など、さまざまなデータ同期機能を提供します。 データ同期機能を使用すると、OSSメタデータを検出して整理し、Simple Log Service (SLS) およびApsaraMQ for 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に移行できます。 次に、AnalyticDB for MySQLはメタデータを自動的に整理し、その後の分析を実行します。