この記事では、Azure portal を使って移行を簡素化する方法について説明します。
注
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 のコミュニティ エキスパートから回答を得ることもできます。
注
この記事では、読みやすくするために、 Gen1 という用語を使用して Azure Data Lake Storage Gen1 を参照し、 Gen2 という用語を使用して Azure Data Lake Storage Gen2 を参照します。
手順 1: Gen2 機能を持つストレージ アカウントを作成する
Azure Data Lake Storage Gen2 は、専用のストレージ アカウントやサービスの種類ではありません。 これは、Azure ストレージ アカウントの 階層型名前空間 機能を有効にすることで取得できる一連の機能です。 Gen2 機能を備えたアカウントを作成するには、「 Azure Data Lake Storage Gen2 で使用するストレージ アカウントを作成する」を参照してください。
アカウントを作成するときは、必ず次の値を使用して設定を構成してください。
設定 | 値 |
---|---|
ストレージ アカウント名 | 任意の名前。 この名前は、Gen1 アカウントの名前と一致する必要はなく、任意のサブスクリプションで使用できます。 |
場所 | Data Lake Storage Gen1 アカウントで使用されているのと同じリージョン |
複製 | LRS または ZRS |
最小 TLS バージョン | 1.0 |
NFS v3 | 無効 |
階層型名前空間 | 有効化済み |
注
Azure portal の移行ツールでは、アカウントの設定は移動されません。 そのため、アカウントを作成した後に、暗号化、ネットワーク ファイアウォール、データ保護などの設定を手動で構成する必要があります。
重要
使用の履歴がない新しく作成された新しいストレージ アカウントを使用するようにしてください。 以前に使用したアカウントに移行したり、コンテナーが削除されたアカウントを使用してアカウントを空にしたりしないでください。
手順 2: Azure ロールベースのアクセス制御 (Azure RBAC) のロールの割り当てを確認する
Gen2 の場合は、ストレージ アカウント、親リソース グループ、またはサブスクリプションのスコープで、 ストレージ BLOB データ所有者 ロールが Microsoft Entra ユーザー ID に割り当てられていることを確認します。
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 にデータをコピーする
Azure portal にサインインして作業を開始します。
Data Lake Storage Gen1 アカウントを見つけて、そのアカウントの概要を表示します。
[ データの移行 ] ボタンを選択します。
[ データを新しい Gen2 アカウントにコピーする] を選択します。
チェックボックスをオンにして、Microsoft でデータを移行することに同意します。 次に、[ 適用 ] ボタンを選択します。
進行状況バーがサブ ステータス メッセージと共に表示されます。 これらのインジケーターを使用して、移行の進行状況を測定できます。 各タスクが完了するまでの時間は異なるため、進行状況バーが一定の速度で進むことはありません。 たとえば、進行状況バーは、50% まですぐに進んだ後、残りの 50% を完了するのにそれより長い時間がかかる可能性があります。
重要
データの移行中に、Gen1 アカウントが読み取り専用になり、Gen2 対応アカウントが無効になります。 移行が完了したら、両方のアカウントに対して読み取りと書き込みを行うことができます。
[移行の停止] ボタンを選択すると、いつでも 移行を停止 できます。
オプション 2: 完全な移行を行う
Azure portal にサインインして作業を開始します。
Data Lake Storage Gen1 アカウントを見つけて、そのアカウントの概要を表示します。
[ データの移行 ] ボタンを選択します。
[新しい Gen2 アカウントへの移行の完了] を選択します。
チェックボックスをオンにして、Microsoft でデータを移行することに同意します。 次に、[ 適用 ] ボタンを選択します。
進行状況バーがサブ ステータス メッセージと共に表示されます。 これらのインジケーターを使用して、移行の進行状況を測定できます。 各タスクが完了するまでの時間は異なるため、進行状況バーが一定の速度で進むことはありません。 たとえば、進行状況バーは、50% まですぐに進んだ後、残りの 50% を完了するのにそれより長い時間がかかる可能性があります。
重要
データの移行中に、Gen1 アカウントが読み取り専用になり、Gen2 対応アカウントが無効になります。
さらに、Gen1 URI のリダイレクト中は、両方のアカウントが無効になります。
移行が完了すると、Gen1 アカウントは無効になります。 Gen1 アカウントのデータにはアクセスできないため、30 日後に削除されます。 Gen2 アカウントは、読み取りと書き込みに使用できます。
[移行の停止] ボタンを選択すると、URI がリダイレクトされる前に いつでも移行を停止 できます。
手順 6: 移行が完了したことを確認する
移行が正常に完了すると、Gen1 という名前のコンテナーが Gen2 対応アカウントに作成され、Gen1 アカウントのすべてのデータがこの新しい gen1 コンテナーにコピーされます。 Gen1 に存在するパス上のデータを検索するには、Gen2 でアクセスするために、同じパスにプレフィックス gen1/ を追加する必要があります。 たとえば、Gen1 の 'FolderRoot/FolderChild/FileName.csv' という名前のパスは、Gen2からは 'gen1/FolderRoot/FolderChild/FileName.csv' でアクセスできます。 Gen2 ではコンテナー名の名前を変更できないため、Gen2 上のこの gen1 コンテナーの名前を移行後に変更することはできません。 ただし、必要に応じて、データを Gen2 の新しいコンテナーにコピーできます。
移行が正常に完了しない場合は、互換性がないために移行が停止したことを示すメッセージが表示されます。 次の手順に関するサポートが必要な場合は、 Microsoft サポートにお問い合わせください。 このメッセージは、Gen2 対応アカウントが以前に使用されていた場合や、Gen1 アカウントのファイルとディレクトリで互換性のない名前付け規則が使用されている場合に表示されます。
サポートに問い合わせる前に、使用履歴のない新しく作成されたストレージ アカウントを使用していることを確認してください。 以前に使用したアカウントや、アカウントを空にするためにコンテナーが削除されたアカウントを移行しないでください。 Gen1 アカウントで、スペースまたはタブしか含んでいない、.
で終わっている、:
を含んでいる、または複数のスラッシュ (//
) を含んでいるファイル名またはディレクトリ名は、必ず名前を変更してください。
手順 7: ワークロードとアプリケーションを移行する
Gen2 エンドポイントを指すように ワークロード内のサービス を構成します。 Gen2 を使用するように Azure Databricks、HDInsight、およびその他の Azure サービスを構成するのに役立つ記事へのリンクについては、 Azure Data Lake Storage Gen2 をサポートする Azure サービスを参照してください。
Gen2 API を使用するようにアプリケーションを更新します。 これらのガイドを参照してください。
環境 [アーティクル] Azure 記憶域エクスプローラー Azure Storage Explorer を使用して Azure Data Lake Storage Gen2 のディレクトリとファイルを管理する .NET .NET を使用して Azure Data Lake Storage Gen2 のディレクトリとファイルを管理する ジャワ Java を使用して Azure Data Lake Storage Gen2 のディレクトリとファイルを管理する Python(プログラミング言語) Python を使用して Azure Data Lake Storage Gen2 のディレクトリとファイルを管理する JavaScript (Node.js)JavaScript (Node.js) Node.js で JavaScript SDK を使用して Azure Data Lake Storage Gen2 のディレクトリとファイルを管理する REST API Azure Data Lake Store REST API Data Lake Storage Gen2 PowerShell コマンドレットと Azure CLI コマンドを使用するようにスクリプトを更新します。
コード ファイル、Databricks ノートブック、Apache Hive HQL ファイル、またはワークロードの一部として使用されるその他のファイルで、文字列
adl://
が含まれる URI 参照を検索します。 これらの参照を、新しいストレージ アカウントの Gen2 形式の URI に 置き換えます。 たとえば、Gen1 の URIadl://mydatalakestore.azuredatalakestore.net/mydirectory/myfile
は、abfss://myfilesystem@mydatalakestore.dfs.core.windows.net/mydirectory/myfile
になる可能性があります。
Gen1 互換性レイヤー
このレイヤーは、移行時の便宜を図って Gen1 と Gen2 の間のアプリケーション互換性を提供するためのもので、アプリケーションが Gen1 API を引き続き使用して Gen2 対応のアカウントのデータと対話できるようにします。 このレイヤーの機能は限定的であり、移行の一環としてこの方法を使用する場合は、テスト アカウントを使用してワークロードを検証することをお勧めします。 互換性レイヤーはサーバー上で実行されるため、インストールするものはありません。
重要
Microsoft では、ワークロードとアプリケーションを移行する代替手段として、この機能をお勧めしていません。 Gen1 互換性レイヤーのサポートは、Gen1 が 2024 年 2 月 29 日に廃止されると終了します。
互換性レイヤーに関する問題の発生数を最小にするために、必ず Gen1 SDK で次のバージョン (またはそれ以降) が使用されていることを確認してください。
言語 | SDK バージョン |
---|---|
.NET | 2.3.9 |
ジャワ | 1.1.21 |
Python | 0.0.51 |
次の機能は互換性レイヤーでサポートされていません。
エントリに ListBefore を適用する ListStatus API オプション。
継続トークンのない 4,000 を超えるファイルを含む ListStatus API。
追加操作のチャンクエンコーディング。
Microsoft Entra トークンの対象ユーザーとして
https://management.azure.com/
を使うすべての API 呼び出し。スペースまたはタブのみを含むファイルまたはディレクトリの名前。
.
で終わるか、:
が含まれるか、複数の連続するスラッシュ (//
) があります。
よく寄せられる質問
移行にはどのくらいの時間がかかりますか?
データとメタデータは並行して移行されます。 移行の完了に必要な合計時間は、これら 2 つのプロセスのどちらが最後に完了した場合でも同じです。
次の表は、各移行処理タスクのおおよその速度を示したものです。
注
これらの推定時間は概算であり、異なる場合があります。 たとえば、多数の小さなファイルをコピーすると、パフォーマンスが低下する可能性があります。
処理タスク | 速度 |
---|---|
データのコピー | 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.2 = 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 に切り替える」を参照してください。
次のステップ
- 一般的な移行について学習します。 詳細については、「 Azure Data Lake Storage を Gen1 から Gen2 に移行する」を参照してください。