Azure portal を使用して、Gen1 から Gen2 に Azure Data Lake Storage を移行する

この記事では、Azure portal を使って移行を簡素化する方法について説明します。

Note

Azure Data Lake Storage Gen1 は廃止されました。 廃止の通知についての詳細は、こちらを参照してください。 Data Lake Storage Gen1 リソースにアクセスできなくなりました。 特別なサポートが必要な場合は、お問い合わせください

詳しい解説は、こちらのビデオでご覧ください。

     チャプター:


  • 00:37 - はじめに

  • 01:16 - 移行の準備

  • 07:15 - 移行のコピー

  • 17:40 - コピーと完全な移行の比較

  • 19:43 - 移行の完了

  • 33:15 - 移行後

開始する前に、「Azure Data Lake Storage の移行のガイドラインとパターン」で、Gen1 から Gen2 に移行する方法に関する一般的なガイダンスを必ずお読みください。

ご使用のアカウントは、特定の制約に基づいてポータルベースの移行の対象にならない場合があります。 Gen1 アカウントで Azure portal の [データの移行] ボタンが有効になっていないとき、サポート プランがある場合は、サポート リクエストを提出できます。 また、Microsoft Q&A でコミュニティの専門家から回答を得ることができます。

Note

読みやすくするため、この記事では、Azure Data Lake Storage Gen1 を Gen1 と呼び、Azure Data Lake Storage Gen2 を Gen2 と呼びます。

手順 1: Gen2 機能を持つストレージ アカウントを作成する

Azure Data Lake Storage Gen2 は、専用のストレージ アカウントやサービスの種類ではありません。 これは、Azure ストレージ アカウントの階層的な名前空間機能を有効にすることによって取得できる一連の機能です。 Gen2 機能を持つアカウントを作成する場合は、「Azure Data Lake Storage Gen2 で使用するストレージ アカウントを作成する」を参照してください。

アカウントを作成するときは、必ず次の値を使用して設定を構成してください。

設定
Storage account name (ストレージ アカウント名) 任意の名前。 この名前は、Gen1 アカウントの名前と一致する必要はなく、任意のサブスクリプションで使用できます。
場所 Data Lake Storage Gen1 アカウントで使用されているのと同じリージョン
レプリケーション LRS または ZRS
TLS の最小バージョン 1.0
NFS v3 無効
階層構造の名前空間 Enabled

Note

Azure portal の移行ツールでは、アカウントの設定は移動されません。 そのため、アカウントを作成した後に、暗号化、ネットワーク ファイアウォール、データ保護などの設定を手動で構成する必要があります。

重要

使用の履歴がない新しく作成された新しいストレージ アカウントを使用するようにしてください。 以前に使用したアカウントに移行したり、アカウントを空にするためにコンテナーが削除されたアカウントを使用しないでください

手順 2: Azure ロールベースのアクセス制御 (Azure RBAC) のロールの割り当てを確認する

Gen2 の場合は、ストレージ アカウント、親リソース グループ、またはサブスクリプションのスコープ内の Microsoft Entra ユーザー ID に、ストレージ BLOB データ所有者ロールが割り当てられていることを確かめます。

Gen1 の場合は、Gen1 アカウント、親リソース グループ、またはサブスクリプションのスコープ内の Microsoft Entra ID に、所有者ロールが割り当てられていることを確かめます。

手順 3: Azure Data Lake Analytics ワークロードを移行する

Azure Data Lake Storage Gen2 では、Azure Data Lake Analytics はサポートされていません。 Azure Data Lake Analytics は 2024 年 2 月 29 日に廃止されます。 Azure portal を使用して、Azure Data Lake Analytics に使用される Azure Data Lake Storage Gen1 アカウントを移行しようとすると、Azure Data Lake Analytics ワークロードが中断される可能性があります。 Gen1 アカウントの移行を試みる前に、まず Azure Data Lake Analytics ワークロードを Azure Synapse Analytics に移行するか、サポートされている別のコンピューティング プラットフォームに移行する必要があります。

詳細については、「Azure portal を使用して Azure Data Lake Analytics を管理する」を参照してください。

手順 4: Gen1 アカウントを準備する

スペースまたはタブのみが含まれる、. で終わる、: が含まれる、または複数の連続するスラッシュ (//) が含まれるファイルまたはディレクトリの名前は、Gen2 と互換性がありません。 移行する前に、これらのファイルまたはディレクトリの名前を変更する必要があります。

パフォーマンスを向上させるには、最後に削除操作を行ったときから少なくとも 10 日経ってから、移行を行うようにしてください。 Gen1 アカウントでは、削除されたファイルは "論理的" に削除されたファイルになり 、ガベージ コレクターは 7 日まで完全に削除せず、クリーンアップの処理にさらに数日かかります。 クリーンアップにかかる時間は、ファイルの数によって異なります。 論理的に削除されたファイルを含むすべてのファイルは、移行中に処理されます。 削除されたファイルをガベージ コレクターが完全に削除するまで待った場合、待ち時間が短くなる可能性があります。

手順 5: 移行を実行する

開始する前に、以下の 2 つの移行オプションを確認し、Gen1 から Gen2 にデータのみをコピーする (推奨) か、完全な移行を実行するかを決定します。

オプション 1: データのみをコピーする (推奨)。 このオプションでは、データが Gen1 から Gen2 にコピーされます。 データがコピーされている間、Gen1 アカウントは読み取り専用になります。 データがコピーされると、Gen1 アカウントと Gen2 アカウントの両方にアクセスできるようになります。 ただし、新しい Gen2 エンドポイントを使用するには、アプリケーションとコンピューティング ワークロードを更新する必要があります。

オプション 2: 完全な移行を行う。 このオプションでは、データが Gen1 から Gen2 にコピーされます。 データがコピーされると、Gen1 アカウントからのすべてのトラフィックが Gen2 対応アカウントにリダイレクトされます。 リダイレクトされた要求は、Gen1 互換性レイヤーを使用して、Gen1 API 呼び出しを Gen2 の同等の呼び出しに変換します。 移行中、Gen1 アカウントは読み取り専用になります。 移行が完了すると、Gen1 アカウントにアクセスできなくなります。

どちらのオプションを選択しても、移行し、すべてのワークロードが期待どおりに動作することを確認したら、Gen1 アカウントを削除できます。

オプション 1: Gen1 から Gen2 にデータをコピーする

  1. Azure ポータルにサインインして、作業を開始します。

  2. Data Lake Storage Gen1 アカウントを見つけて、そのアカウントの概要を表示します。

  3. [データの移行] ボタンを選択します。

    Screenshot of the button to migrate.

  4. [Copy data to a new Gen2 account](データを新しい Gen2 アカウントにコピーする) を選択します。

    Screenshot of the copy data option.

  5. チェックボックスをオンにして、Microsoft でデータを移行することに同意します。 次に [適用] ボタンを選びます。

    Screenshot of the checkbox to provide consent.

    進行状況バーがサブ ステータス メッセージと共に表示されます。 これらのインジケーターを使用して、移行の進行状況を測定できます。 各タスクが完了するまでの時間は異なるため、進行状況バーが一定の速度で進むことはありません。 たとえば、進行状況バーは、50% まですぐに進んだ後、残りの 50% を完了するのにそれより長い時間がかかる可能性があります。

    Screenshot of progress bar when migrating data.

    重要

    データの移行中に、Gen1 アカウントが読み取り専用になり、Gen2 対応アカウントが無効になります。 移行が完了したら、両方のアカウントに対して読み取りと書き込みを行うことができます。

    [移行の停止] ボタンを選択することで、いつでも移行を停止できます。

    Screenshot of the stop migration option.

オプション 2: 完全な移行を行う

  1. Azure ポータルにサインインして、作業を開始します。

  2. Data Lake Storage Gen1 アカウントを見つけて、そのアカウントの概要を表示します。

  3. [データの移行] ボタンを選択します。

    Screenshot of the migrate button.

  4. [新しい Gen2 アカウントへの移行を完了する] を選択します。

    Screenshot of the complete migration option.

  5. チェックボックスをオンにして、Microsoft でデータを移行することに同意します。 次に [適用] ボタンを選びます。

    Screenshot of the consent checkbox.

    進行状況バーがサブ ステータス メッセージと共に表示されます。 これらのインジケーターを使用して、移行の進行状況を測定できます。 各タスクが完了するまでの時間は異なるため、進行状況バーが一定の速度で進むことはありません。 たとえば、進行状況バーは、50% まですぐに進んだ後、残りの 50% を完了するのにそれより長い時間がかかる可能性があります。

    Screenshot of progress bar when performing a complete migration.

    重要

    データの移行中に、Gen1 アカウントが読み取り専用になり、Gen2 対応アカウントが無効になります。

    さらに、Gen1 URI のリダイレクト中は、両方のアカウントが無効になります。

    移行が完了すると、Gen1 アカウントは無効になります。 Gen1 アカウントのデータにはアクセスできないため、30 日後に削除されます。 Gen2 アカウントは、読み取りと書き込みに使用できます。

    [移行の停止] ボタンを選択することで、URI がリダイレクトされる前にいつでも移行を停止できます。

    Screenshot of the migration stop button.

手順 6: 移行が完了したことを確認する

移行が正常に完了した場合は、gen1 という名前のコンテナーが Gen2 対応アカウントに作成され、Gen1 アカウントのすべてのデータがこの新しい gen1 コンテナーにコピーされます。 Gen1 に存在するパス上のデータを見つけるには、同じパスにプレフィックス gen1/ を追加して、Gen2 でアクセスできるようにする必要があります。 たとえば、Gen1 の 'FolderRoot/FolderChild/FileName.csv' という名前のパスは、Gen2からは 'gen1/FolderRoot/FolderChild/FileName.csv' でアクセスできます。 Gen2 ではコンテナーの名前を変更できないため、Gen2 のこの gen1 コンテナーは移行後に名前を変更できません。 ただし、必要に応じて、データを Gen2 の新しいコンテナーにコピーできます。

移行が正常に完了しない場合は、互換性がないために移行が停止したことを示すメッセージが表示されます。 次の手順に関するサポートが必要な場合は、Microsoft サポートにお問い合わせください。 このメッセージは、Gen2 対応アカウントが以前に使用されていた場合や、Gen1 アカウントのファイルとディレクトリで互換性のない名前付け規則が使用されている場合に表示されます。

サポートに問い合わせる前に、使用履歴のない新しく作成されたストレージ アカウントを使用していることを確認してください。 以前に使用したアカウントや、アカウントを空にするためにコンテナーが削除されたアカウントを移行しないでください。 Gen1 アカウントで、スペースまたはタブしか含んでいない、. で終わっている、: を含んでいる、または複数のスラッシュ (//) を含んでいるファイル名またはディレクトリ名は、必ず名前を変更してください。

手順 7: ワークロードとアプリケーションを移行する

  1. Gen2 エンドポイントを指し示すように、ワークロード内のサービスを構成します。 Azure Databricks、HDInsight、およびその他の Azure サービスを構成して Gen2 を使用するようにするために役立つ記事へのリンクについては、「Azure Data Lake Storage Gen2 がサポートされている Azure のサービス」を参照してください。

  2. Gen2 API を使用するようにアプリケーションを更新します。 これらのガイドを参照してください。

    環境 [アーティクル]
    Azure Storage Explorer Azure Storage Explorer を使用して Azure Data Lake Storage Gen2 のディレクトリとファイルを管理する
    .NET .NET を使用して Azure Data Lake Storage Gen2 でディレクトリとファイルを管理する
    Java Java を使用して Azure Data Lake Storage Gen2 のディレクトリとファイルを管理する
    Python Python を使用して Azure Data Lake Storage Gen2 でディレクトリとファイルを管理する
    JavaScript (Node.js) Node.js の JavaScript SDK を使用して Azure Data Lake Storage Gen2 でディレクトリとファイルを管理する
    REST API Azure Data Lake Store REST API
  3. Data Lake Storage Gen2 の PowerShell コマンドレットおよび Azure CLI コマンドを使用するようにスクリプトを更新します。

  4. コード ファイル、Databricks ノートブック、Apache Hive HQL ファイル、またはワークロードの一部として使用されるその他のファイルで、文字列 adl:// が含まれる URI 参照を検索します。 これらの参照を、新しいストレージ アカウントの Gen2 形式の URI に置き換えます。 たとえば、Gen1 の URI adl://mydatalakestore.azuredatalakestore.net/mydirectory/myfile は、abfss://myfilesystem@mydatalakestore.dfs.core.windows.net/mydirectory/myfile になる可能性があります。

Gen1 互換性レイヤー

このレイヤーは、移行時の便宜を図って Gen1 と Gen2 の間のアプリケーション互換性を提供するためのもので、アプリケーションが Gen1 API を引き続き使用して Gen2 対応のアカウントのデータと対話できるようにします。 このレイヤーの機能は限定的であり、移行の一環としてこの方法を使用する場合は、テスト アカウントを使用してワークロードを検証することをお勧めします。 互換性レイヤーはサーバー上で実行されるため、インストールするものはありません。

重要

Microsoft では、ワークロードとアプリケーションを移行する代替手段として、この機能をお勧めしていません。 2024 年 2 月 29 日に Gen1 が廃止されると、Gen1 互換性レイヤーのサポートが終了します。

互換性レイヤーに関する問題の発生数を最小にするために、必ず Gen1 SDK で次のバージョン (またはそれ以降) が使用されていることを確認してください。

言語 SDK バージョン
.NET 2.3.9
Java 1.1.21
Python 0.0.51

次の機能は互換性レイヤーでサポートされていません。

  • エントリに ListBefore を適用する ListStatus API オプション。

  • 継続トークンのない 4,000 を超えるファイルを含む ListStatus API。

  • 追加操作のチャンクエンコーディング。

  • Microsoft Entra トークンの対象ユーザーとして https://management.azure.com/ を使うすべての API 呼び出し。

  • スペースまたはタブのみを含むファイルまたはディレクトリの名前。. で終わるか、: が含まれるか、複数の連続するスラッシュ (//) があります。

よく寄せられる質問

移行にはどのくらいの時間がかかりますか?

データとメタデータは並行して移行されます。 移行の完了に必要な合計時間は、これら 2 つのプロセスのどちらが最後に完了した場合でも同じです。

次の表は、各移行処理タスクのおおよその速度を示したものです。

Note

これらの推定時間は概算であり、異なる場合があります。 たとえば、多数の小さなファイルをコピーすると、パフォーマンスが低下する可能性があります。

処理タスク 速度
データのコピー 1 時間あたり 9 TB
データ検証 1 時間あたり 900 万個のファイルまたはフォルダー
メタデータのコピー 1 時間あたり 400 万個のファイルまたはフォルダー
メタデータの処理 1 時間あたり 2,500 万個のファイルまたはフォルダー
追加のメタデータ処理 (データ コピー オプション)1 1 時間あたり 5,000 万個のファイルまたはフォルダー

1 追加のメタデータ処理時間が当てはまるのは、[新しい Gen2 アカウントにデータをコピーする] オプションを選んだ場合のみです。 [新しい Gen2 アカウントへの移行を完了する] オプションを選んだ場合は、この処理時間は当てはまりません。

例: 大量のデータとメタデータの処理

この例では、300 TB のデータと、2 億個のデータおよびメタデータ項目があるものとします。

タスク 推定時間
データをコピーする 300 TB / 9 TB = 33.33 時間
データの検証 2 億 / 900 万 = 22.22 時間
合計データ移行時間 33.33 + 22.22 = 55.55 時間
メタデータのコピー 2 億 / 400 万 = 50 時間
メタデータの処理 2 億 / 2,500 万 = 8 時間
追加のメタデータ処理 - データ コピー オプションのみ 2 億 / 5,000 万 = 4 時間
合計メタデータ移行時間 50 + 8 + 4 = 62 時間
データのみの移行を実行するための合計時間 62 時間
完全な移行を実行するための合計時間 62 - 4 = 58 時間
例: 少量のデータとメタデータの処理

この例では、2 TB のデータと、56,000 個のデータおよびメタデータ項目があるものとします。

タスク 推定時間
データをコピーする (2 TB / 9 TB) * 60 分 = 13.3 分
データの検証 (56,000 / 900 万) * 3,600 秒 = 22.4 秒
合計データ移行時間 13.3 分 + 22.4 秒 = 約 14 分
メタデータのコピー (56,000 / 400 万) * 3,600 秒 = 約 51 秒
メタデータの処理 56,000 / 2,500 万 = 8 秒
追加のメタデータ処理 - データ コピー オプションのみ (56,000 / 5,000 万) * 3,600 秒 = 4 秒
合計メタデータ移行時間 51 + 8 + 4 = 63 秒
データのみの移行を実行するための合計時間 14 分
完全な移行を実行するための合計時間 14 分 - 4 秒 = 13 分 56 秒 (約 14 分)

データの移行にはどのくらいのコストがかかりますか?

ポータルベースの移行ツールの使用にコストはかかりませんが、Azure Data Lake Gen1 および Gen2 サービスの使用に対して課金されます。 データ移行中は、Gen1 アカウントのデータ ストレージとトランザクションに対して課金されます。

移行後は、データのみをコピーするオプションを選択した場合は、Azure Data Lake Gen1 および Gen2 の両方のアカウントのデータ ストレージとトランザクションに対して課金されます。 Gen1 アカウントに対して課金されないようにするには、Gen2 を指定するようにアプリケーションを更新した後で、Gen1 アカウントを削除します。 完全な移行を行うことを選択した場合は、Gen2 対応アカウントのデータ ストレージとトランザクションに対してのみ課金されます。

すべての Azure Data Lake Analytics アカウントが、Azure Synapse Analytics またはサポートされている別のコンピューティング プラットフォームに移行されていることを確認します。 Azure Data Lake Analytics アカウントが移行されたら、同意を再試行します。 さらに問題が発生し、サポート プランがある場合は、サポート リクエストを提出できます。 また、Microsoft Q&A でコミュニティの専門家から回答を得ることができます。

移行の完了後に、Gen1 アカウントの使用に戻すことができますか?

オプション 1: 上記の Gen1 から Gen2 にデータをコピーを使用する場合は、移行後の読み取りと書き込みの両方の Gen1 アカウントと Gen2 アカウントを使用できます。 ただし、 オプション 2: 完全な移行を実行を使用した場合、Gen1 アカウントに戻すことはサポートされてません。 オプション 2 では、移行が完了すると、Gen1 アカウント内のデータにアクセスできなくなり、30 日後に削除されます。 Azure portal では引き続き Gen1 アカウントを表示でき、準備ができたら、Gen1アカウントを削除できます。

Gen2 対応アカウントで Geo 冗長ストレージ (GRS) を有効にしたいのですが。 どうすればよいですか?

[データのコピー] と [移行の完了] オプションの両方での移行が完了したら、先に進み、アプリケーションの互換性レイヤーを使用する予定がない限り、冗長性オプションを GRS に変更できます。 アプリケーションの互換性は、GRS 冗長性を使用するアカウントでは機能しません。

Gen1 にコンテナーがなく、Gen2 にある場合はどうなりますか?

Gen2 対応アカウントにデータをコピーすると、「Gen1」という名前のコンテナーが自動的に作成されます。 Gen2 ではコンテナー名を変更することはできません。そのため、移行後のデータは、必要に応じて Gen2 の新しいコンテナーにコピーできます。

移行のパフォーマンスについて何を考慮する必要がありますか?

Gen2 対応アカウントにデータをコピーする場合、ファイルの数とメタデータの量の 2 つの要因がパフォーマンスに影響を与える可能性があります。 たとえば、多くの小さなファイルがあると、移行のパフォーマンスに影響する可能性があります。

WebHDFS ファイル システム API は、移行後の Gen2 アカウントでサポートされますか?

Gen1 の WebHDFS ファイル システム API は Gen2 でサポートされますが、いくつかの相違点があり、互換性レイヤーを介してサポートされる機能は限定的です。 お客様には、パフォーマンスと機能を向上させるために、Gen2 固有の API の活用を計画することをお勧めします。

廃止日が過ぎると、Gen1 アカウントはどうなりますか?

アカウントにアクセスできなくなります。 次のことができなくなります。

  • アカウントを管理する

  • アカウント内のデータにアクセスする

  • Gen1 または Gen1 の API、SDK、クライアント ツールに対するサービス更新プログラムを受け取る

  • オンライン、電話、またはメールで、Gen1 カスタマー サポートにアクセスする

必要なアクション: 2024 年 2 月 29 日までに Azure Data Lake Storage Gen2 に切り替える」をご覧ください。

次のステップ