E-MapReduce (EMR) と Data Lake Formation (DLF) の組み合わせに基づくデータレイクソリューション (EMR+DLF データレイクソリューション) により、企業はデータレイクのメタデータと権限を一元的に管理できます。このソリューションは、データライフサイクル管理、レイク形式の自動最適化、ストレージ分析などのデータレイク管理もサポートしています。 EMR+DLF データレイクソリューションを使用して、さまざまなソースからデータレイクにデータを書き込み、ワンストップのデータ探索を実装できます。このトピックでは、EMR+DLF データレイクソリューションの使用方法について説明します。
背景情報
EMR+DLF データレイクソリューションは、従来の EMR データレイクソリューションに比べて次の利点があります。
DLF は、エンジン全体でデータレイクに統一された、完全に管理された、O&M 不要のメタデータサービスを提供します。
メタデータ管理とマルチバージョン管理、ロールバックの可視化。
容易なメタデータ移行の可視化。
メタデータの全文検索。
メタデータのデータプロファイリング。たとえば、データプロファイリングを使用して、ファイルサイズ、ファイルの行数、アクセス頻度、小さなファイルの数、ファイルの人気度、有効なファイルの数を調べることができます。
EMR のオープンソースエンジンに加えて、MaxCompute、Flink、Hologres など、より多くのコンピューティングエンジンをサポート。
DLF は、きめ細かいデータ権限管理をサポートします。
データカタログ、データベース、データ列、関数などのリソースに対する、可視化されたきめ細かい権限管理。
Spark、Hive、Presto、Impala との統合など、EMR の複数のコンピューティングエンジンとの統合。
豊富なデータレイク管理機能が提供されます。
多次元のデータライフサイクル管理。ファイルの人気度と更新時間に基づいてデータを自動的にアーカイブし、ストレージコストを削減できます。
ストレージコストを削減するための Delta Lake 形式の自動ストレージ最適化ポリシー。
追加情報
DLF がサポートされているリージョンについては、「サポートされているリージョンとエンドポイント」をご参照ください。
DLF の課金については、「課金」をご参照ください。
手順
ステップ 1:EMR DataLake クラスタを作成する
[メタデータ] で [DLF 統合メタデータ] を選択する必要があります。
EMR コンソール にログオンします。左側のナビゲーションウィンドウで、[ECS 上の EMR] をクリックします。
[ECS 上の EMR] ページで、[クラスタの作成] をクリックします。 [ECS 上の E-mapreduce] ページで、次のパラメーターを設定します。
[ビジネスシナリオ]: [データレイク] を選択します。
[オプションサービス (少なくとも 1 つ選択)]: [hive] が必須です。ビジネス要件に基づいて他のサービスを選択できます。
[メタデータ]: [DLF 統合メタデータ] を選択します。
[DLF カタログ]: デフォルトの DLF カタログを使用するか、カタログを作成します。 DLF をアクティブ化していない場合は、最初に DLF をアクティブ化するように求められます。
プロンプトに従って後続の操作を完了します。 詳細については、「クラスタを作成する」をご参照ください。
ステップ 2:メタデータを初期化する
シナリオに応じて異なる方法を使用してメタデータを初期化できます。
EMR クラスタのメタデータが組み込み MySQL データベースまたはセルフマネージド ApsaraDB RDS データベースに保存されている場合は、メタデータを DLF に移行する必要があります。 詳細については、「EMR メタデータを DLF に移行する」をご参照ください。
新しく作成された EMR クラスタで履歴メタデータが使用できない場合は、DLF を使用してメタデータを視覚的に作成するか、Hive または Spark SQL を使用してデータベースとデータテーブルを作成できます。
DLF コンソール にログオンします。上部のナビゲーションバーで、Object Storage Service (OSS) がアクティブ化されているリージョン (例:中国 (杭州)) を選択します。
左側のナビゲーションウィンドウで、 を選択します。
[データベース] タブをクリックします。タブで、[データベースの作成] をクリックします。
[データベースの作成] ページで、パラメーターを設定し、[OK] をクリックします。
新しく作成された EMR クラスタのデータが OSS に保存されていて、メタデータが使用できない場合は、DLF の メタデータディスカバリー 機能を使用して、OSS から DLF にメタデータを抽出できます。詳細については、「DLF データ探索 - Taobao ユーザー行動分析」をご参照ください。
ステップ 3:データを初期化する
次のシナリオでは、異なる方法を使用してデータを初期化できます。
既存の EMR クラスタのデータを移行する場合は、Jindo DistCp を使用して、クラスタから OSS にデータを移行できます。
RDS、MySQL、Kafka などのサービスシステムからデータをインポートする場合は、Realtime Compute for Apache Flink を使用して DLF にデータをインポートできます。詳細については、「DLF カタログを管理する」をご参照ください。
ステップ 4:Spark または Presto を使用して特定の DLF テーブルのデータをクエリする
EMR クラスタのマスターノード -1-1 に SSH モードでログオンします。詳細については、「。詳細については、クラスタにログオンする」をご参照ください。
Spark SQL を使用して特定のテーブルのデータをクエリします。
次のコマンドを実行して Spark SQL を起動します。
spark-sql次のステートメントを実行して、テーブル内のデータをクエリします。
SELECT * FROM <database>.<table>;
Presto を使用して特定のテーブルのデータをクエリします。
次のコマンドを実行して Presto CLI を起動します。
presto --server master-1-1:8889次のステートメントを実行して、テーブル内のデータをクエリします。
SELECT * FROM <catalog>.<database>.<table>;上記のステートメントのパラメーター
パラメーター
説明
<catalog>接続先のデータソースの名前。
show catalogs;コマンドを実行して、すべてのカタログを表示できます。また、EMR コンソールの Presto サービスページの [設定] タブですべてのカタログを表示することもできます。<database>クエリするデータベースの名前。
<table>クエリするテーブルの名前。
たとえば、Hive のデフォルトデータベースの
testテーブルからデータをクエリする場合は、SELECT * FROM hive.default.test;ステートメントを実行できます。
(オプション) ステップ 5:データ権限管理を有効にする
特定のビジネスシナリオでは、高いデータセキュリティとデータレイクの適切なデータ権限管理が必要です。データ権限管理を有効にするには、次の手順を実行します。
EMR クラスタの DLF 権限管理を有効にします。詳細については、「DLF-Auth」をご参照ください。
DLF のデータカタログの権限管理を有効にします。詳細については、「権限を設定する」をご参照ください。
設定された権限管理は、EMR クラスタ内のすべてのデータに適用されます。 EMR クラスタ内のデータにアクセスするには、ユーザーに必要な権限が付与されている必要があります。
ユーザーに権限を付与する方法については、「データの承認」をご参照ください。詳細については、「DLF と EMR を使用して権限を管理する」をご参照ください。
(オプション) ステップ 6:ライフサイクル管理を実装する
ライフサイクル管理機能を使用して、データレイク内のデータベースとデータテーブルのデータ管理ルールを設定できます。パーティションとテーブルの作成時間、パーティションとテーブルの最終変更時間、パーティション値という 3 つのタイプのルールに基づいて、OSS 内のデータのストレージタイプを定期的に変換できます。これにより、データストレージコストが削減されます。詳細については、「ライフサイクル管理」をご参照ください。