AnalyticDB for MySQLを使用すると、HiveデータソースからObject Storage Service (OSS) バケットにデータを移行できます。 このトピックでは、AnalyticDB for MySQLのデータ移行機能を使用して、HiveデータソースからOSSバケットにデータを移行し、データを分析し、データ移行ジョブを管理する方法について説明します。
概要
AnalyticDB for MySQLを使用すると、HiveデータソースからOSSバケットにデータを移行できます。 メタデータとデータをデータソースからOSSに移行したり、複数のデータベースとテーブルをデータソースからOSSに同時に移行したりできます。
前提条件
AnalyticDB for MySQL Data Lakehouse Editionクラスターが作成されます。
AnalyticDB for MySQLクラスターのジョブリソースグループが作成されます。 詳細については、「リソースグループの作成」をご参照ください。
AnalyticDB for MySQLクラスター用のデータベースアカウントが作成されます。
Alibaba Cloudアカウントを使用する場合は、特権アカウントを作成する必要があります。 詳細については、「データベースアカウントの作成」トピックの「特権アカウントの作成」セクションをご参照ください。
RAM (Resource Access Management) ユーザーを使用する場合は、特権アカウントと標準アカウントの両方を作成し、標準アカウントをRAMユーザーに関連付ける必要があります。 詳細については、「データベースアカウントの作成」および「データベースアカウントの関連付けまたは関連付けの解除」をご参照ください。
次のいずれかのクラスターが、AnalyticDB for MySQLクラスターと同じリージョンに作成されます。
ビジネスシナリオがData Lakeに設定され、メタデータがSelf-managed RDSまたはBuilt-in MySQLに設定されているE-MapReduce (EMR) クラスターは、Hiveサービスで設定され、HiveストレージモードがHDFSに設定されています (Data Lake Storageチェックボックスはオフです) 。 EMRクラスターの作成方法については、「クラスターの作成」をご参照ください。
重要メタデータがDLF Unified Metadataに設定されているEMRクラスター内のHiveデータソースのデータは、OSSバケットに移行できません。
Hiveストレージモードがdata Lake Storageに設定されているEMRクラスター内のHiveデータソースのデータがOSSに保存されます。 メタデータ検出を使用して、AnalyticDB for MySQLにデータをインポートできます。 詳細については、「メタデータ検出を使用したdata Lakehouse Editionへのデータのインポート」をご参照ください。
ECS (Elastic Compute Service) インスタンスにデプロイされたApache Hadoop (CDH) クラスターを含むClouderaの分布。
パーティション分割テーブルがHiveデータソースに作成されます。 詳細については、「Hiveを使用した基本操作の実行」をご参照ください。
課金ルール
AnalyticDB for MySQLのデータ移行機能を使用してデータをOSSに移行する場合、次の料金が発生します。
AnalyticDB for MySQLのAnalyticDBコンピューティングユニット (ACU) エラスティックリソース料金。 詳細については、「Data Lakehouse Editionの課金項目」をご参照ください。.
OSSのストレージ料金、およびGETやPUTなどのリクエスト数の料金。 詳細については、「課金の概要」をご参照ください。
手順
手順1: Hiveデータソースの作成
手順2: データ移行ジョブの作成
手順3: データ移行ジョブの開始
ステップ4: データの分析
ステップ5: (オプション) データ移行ジョブの管理
Hiveデータソースの作成
既存のHiveデータソースからデータを移行する場合は、この手順をスキップしてデータ移行ジョブを作成します。 詳細については、このトピックの「データ移行ジョブの作成」をご参照ください。
AnalyticDB for MySQL コンソールにログインします。 ホームページの左上でリージョンを選択します。 左側のナビゲーションウィンドウで、クラスターリスト をクリックします。 [Data Lakehouse Edition] タブで、管理するクラスターを見つけ、クラスターIDをクリックします。
左側のナビゲーションウィンドウで、[データ取り込み]> [データソース] を選択します。
ページの右上隅にある データソースの新規作成 をクリックします。
データソースの新規作成 ページで、次の表に示すパラメーターを設定します。
EMRクラスター
パラメーター
説明
データソースのタイプ
データソース。 [Hive] を選択します。
データソース名
データソースの名前。 デフォルトでは、データソースの種類と現在の時刻に基づいて名前が生成されます。 ビジネス要件に基づいて名前を変更できます。
データソースの説明
データソースの説明 たとえば、ユースケースとビジネスの制限を入力できます。
デプロイモード
EMRクラスターのデプロイモード。 Alibaba Cloudインスタンスを選択します。
インスタンス
Hiveの日付ソースが属するEMRクラスター。
Hive Metastore Uri
HiveメタストアのURI (Uniform Resource Identifier) 。 このパラメーターは、
thrift:// <マスターノードのIPアドレス >:< ポート番号>
形式で指定します。 デフォルトでは、ポート番号は9083です。マスターノードのプライベートIPアドレスを表示するには、EMRコンソールにログインし、左側のナビゲーションウィンドウでECS上のEMRをクリックします。 管理するEMRクラスターのIDをクリックし、[ノード] タブをクリックしてから、emr-masterノードの左側にあるアイコンをクリックします。
ECSベースのCDHクラスター
パラメーター
説明
データソースのタイプ
データソース。 [Hive] を選択します。
データソース名
データソースの名前。 デフォルトでは、データソースの種類と現在の時刻に基づいて名前が生成されます。 ビジネス要件に基づいて名前を変更できます。
データソースの説明
データソースの説明 たとえば、ユースケースとビジネスの制限を入力できます。
デプロイモード
CDHクラスターの展開モード。 ECSベースのCDHを選択します。
インスタンス
CDHクラスターがデプロイされているECSインスタンス。
Hive Metastore Uri
HiveメタストアのURI。 この場合、CDHクラスターがデプロイされているECSインスタンスのパブリックIPアドレスを指定します。 このパラメーターは、
thrift:// <ECSインスタンスのIPアドレス >:< ポート番号>
形式で指定します。 デフォルトでは、ポート番号は9083です。ホスト設定情報
ホストからIPへのマッピング。 マッピングを異なる行で指定します。
例:
192.168.2.153 master.cdh
192.168.2.154 node1.cdh
192.168.2.155 node2.cdh
作成 をクリックします。
データ移行ジョブの作成
左側のナビゲーションウィンドウで、データ移行 をクリックします。
右上隅の 移行リンクの新規作成 をクリックします。
移行リンクの新規作成 ページの [Hiveデータソース] タブで、データソースと宛先の設定 、ライブラリテーブルの設定を移行します 、および 設定の移行 セクションのパラメーターを設定します。
[ソースと宛先の設定] セクションのパラメーター
パラメーター
説明
データリンク名
データ移行ジョブの名前。 デフォルトでは、データソースの種類と現在の時刻に基づいて名前が生成されます。 ビジネス要件に基づいて名前を変更できます。
データソース
データソースの名前。 既存のHiveデータソースを選択するか、データソースを作成できます。
宛先タイプ
AnalyticDB for MySQLのデータストレージタイプ。 Data Lake - OSS Storageのみがサポートされています。
OSS パス
AnalyticDB for MySQLクラスターデータのOSSストレージパス。
重要AnalyticDB for MySQLクラスターと同じリージョンにあるすべてのバケットが表示されます。 ビジネス要件に基づいてこのパラメーターを設定します。 このパラメーターを設定した後、変更することはできません。
他のデータ移行ジョブのディレクトリとネストされた関係を持たない空のディレクトリを選択することを推奨します。 これにより、履歴データの上書きが防止されます。 たとえば、2つのデータ移行ジョブに関連するOSSストレージパスがoss:// adb_demo/test/sls1 /およびoss:// adb_demo/test /であるとします。 この場合、2つのパスは互いに入れ子の関係にあるため、データ移行中にデータの上書きが発生します。
[データベース /テーブル移行設定] セクションのパラメーター
重要データベース名またはテーブル名がホワイトリストとブラックリストの両方に追加された場合、ブラックリストが優先されます。 この場合、システムはデータベースまたはテーブルを移行しません。
パラメーター
説明
データベースホワイトリストの移行
移行するデータベースとテーブルの名前。 正規表現を使用して名前を指定します。 複数の正規表現はコンマ (,) で区切ります。
ライブラリテーブルのブラックリストの移行
移行しないデータベースとテーブルの名前。 正規表現を使用して名前を指定します。 複数の正規表現はコンマ (,) で区切ります。
[移行設定] セクションのパラメーター
パラメーター
説明
宛先に同名のテーブルファイルが存在する場合の処理
ターゲットOSSバケット内の別のテーブルと同じ名前を使用するテーブルを処理する方法。 有効な値:
移行をスキップ: テーブルをスキップし、他のテーブルの移行を続行します。
レポートエラーと移行中止: データ移行ジョブ全体を一時停止します。
ジョブ型リソースグループ
データ移行ジョブを実行するジョブリソースグループ。
必要な ACU の数
ジョブリソースグループがデータ移行ジョブを実行するために必要なACUの数。 値の範囲は4から、ジョブリソースグループで使用可能なコンピューティングリソースの最大数です。 データ移行の安定性とパフォーマンスを向上させるために、比較的多数のACUを指定することを推奨します。
並列タスクの数
並列実行が開始されるタスクの数。 デフォルト値は 1 です。 有効値: 1~8。
各タスクはテーブルを移行します。 各タスクには少なくとも4つのACUが必要です。 ACUの数が十分でない場合、タスクは順番に実行されます。
詳細設定
データ移行ジョブのカスタム設定。 カスタム設定を構成する場合は、テクニカルサポートにお問い合わせください。
送信 をクリックします。
データ移行ジョブの開始
データ移行 ページで、作成したデータ移行ジョブを見つけ、[操作] 列の [開始] をクリックします。
右上隅の [検索] をクリックします。 ジョブのステータスが [開始] に変わると、データ移行ジョブが開始されます。
データの分析
データ移行ジョブが完了したら、メタデータ検出を使用してOSSからデータを データレイクハウス版。 次に、Spark JAR Developmentを使用して、インポートされたデータを分析できます。 データレイクハウス版。 Spark開発の詳細については、「Sparkエディター」および「概要」をご参照ください。
左側のナビゲーションウィンドウで、 .
デフォルトのテンプレートにSQL文を入力し、実行.
-- Here is just an example of SparkSQL. Modify the content and run your spark program. conf spark.driver.resourceSpec=medium; conf spark.executor.instances=2; conf spark.executor.resourceSpec=medium; conf spark.app.name=Spark SQL Test; conf spark.adb.connectors=oss; -- Here are your sql statements show tables from lakehouse20220413156_adbTest;
(オプション) [アプリケーション] タブでアプリケーションを見つけ、[操作] 列の [ログ] をクリックして、アプリケーションのSpark SQL実行ログを表示します。
データ移行ジョブの管理
データ移行 ページでは、次の表の 操作 列に記載されている操作を実行できます。
API 操作 | 説明 |
スタート | データ移行ジョブを開始します。 |
実行の詳細 | データ移行ジョブの設定や移行済みテーブルの数など、データ移行ジョブの詳細を表示します。 |
編集 | データ移行ジョブの設定プロパティを変更します。 |
中断 | データ移行ジョブを一時停止します。 |
削除 | データ移行ジョブを削除します。 |