Azure Data Lake Storage に関する既知の問題
この記事では、階層型名前空間機能が有効になっているアカウントの制限事項と既知の問題について説明します。
Note
この記事で説明する機能の一部は、ネットワーク ファイル システム (NFS) 3.0 のサポートが有効になっているアカウントではサポートされていない場合があります。 さまざまな機能が有効になっている場合の機能サポートの影響を示す表を表示するには、「Azure ストレージ アカウントにおける Blob Storage 機能のサポート」を参照してください。
サポートされる BLOB ストレージの機能
階層型名前空間を持つアカウントで、より多くの BLOB ストレージ機能が動作するようになりました。 完全な一覧については、Azure Data Lake Storage で使用できる Blob Storage の機能に関する記事を参照してください。
サポートされる Azure サービスの統合
Azure Data Lake Storage は、データの取り込み、分析の実行、視覚的表現の作成に使用できるいくつかの Azure サービスをサポートしています。 サポートされている Azure サービスの一覧については、「Azure Data Lake Storage をサポートする Azure サービス」を参照してください。
詳細については、「Azure Data Lake Storage をサポートする Azure サービス」を参照してください。
サポートされるオープン ソース プラットフォーム
いくつかのオープン ソース プラットフォームは Data Lake Storage をサポートしています。 完全な一覧については、「Azure Data Lake Storage をサポートするオープン ソース プラットフォーム」を参照してください。
詳細については、「Azure Data Lake Storage をサポートするオープン ソース プラットフォーム」を参照してください。
BLOB ストレージ API
Data Lake Storage API、NFS 3.0、BLOB API は、同じデータを操作できます。
このセクションでは、BLOB API、NFS 3.0、Data Lake Storage API を使用して同じデータを操作する場合の問題と制限について説明します。
BLOB API、NFS 3.0、Data Lake Storage API を使用して、ファイルの同じインスタンスに書き込むことはできません。 Data Lake Storage API または NFS 3.0 を使用してファイルに書き込む場合、そのファイルのブロックは、Get Block List BLOB API の呼び出しには認識されません。 唯一の例外は、上書きする場合です。 0 切り捨てオプションを使用して、API または NFS 3.0 のいずれかを使用してファイル/BLOB を上書きできます。
Path - Create 操作などの Data Lake Storage 操作を使用して作成された BLOB は、PutBlock または PutBlockList 操作を使用して上書きできません。ただし、PutBlob で使用される、対応の API バージョンによって課される最大許容 BLOB サイズに従い、PutBlob 操作を使用して上書きすることができます。
区切り記号を指定せずに List Blobs 操作を使用した場合、結果にはディレクトリと BLOB の両方が含まれます。 区切り記号を使用する場合は、スラッシュ (
/
) のみを使用してください。 サポートされている区切り記号はこれだけです。Delete Blob API を使用してディレクトリを削除した場合、そのディレクトリは空の場合にのみ削除されます。 これは、Blob API を使用してディレクトリを再帰的に削除することはできないことを意味します。
次の BLOB REST API はサポートされていません。
アンマネージド VM ディスクは、階層型名前空間があるアカウントではサポートされていません。 ストレージ アカウントで階層型名前空間を有効にする場合は、階層型名前空間機能が有効ではないストレージ アカウントにアンマネージド VM ディスクを配置してください。
アクセス制御リスト (ACL) を再帰的に設定するためのサポート
親ディレクトリから子項目に ACL 変更を再帰的に適用する機能が公開されています。 この機能の現在のリリースでは、Azure Storage Explorer、PowerShell、Azure CLI、.NET、Java、Python SDK を使用して ACL の変更を適用できます。 Azure portal のサポートはまだ提供されていません。
アクセス制御リスト (ACL) と匿名読み取りアクセス
コンテナーへの匿名読み取りアクセスが許可されている場合、そのコンテナーやコンテナーに含まれているファイルには ACL は作用しません。 これは読み取り要求にのみ影響を与えます。 書き込み要求では ACL が引き続き優先されます。 BLOB データに対するすべての要求に対して認可を要求することをお勧めします。
AzCopy
AzCopy の最新バージョン (AzCopy v10) のみを使用してください。 AzCopy の以前のバージョン (AzCopy v8.1 など) はサポートされていません。
Azure Storage Explorer
バージョン 1.6.0
以降のみを使用します。
Azure portal のストレージ ブラウザー
Azure portal に表示されるストレージ ブラウザーでは、パスを指定してファイルやフォルダーにアクセスすることはできません。 代わりに、フォルダーを参照してファイルに到達する必要があります。 そのため、ACL でファイルへの読み取りアクセスは許可されているが、そのファイルに至るすべてのフォルダーの読み取りアクセスが許可されていない場合、そのユーザーはストレージ ブラウザーでファイルを表示できません。
サード パーティ製アプリケーション
REST API を使用して機能するサード パーティ アプリケーションは、Data Lake Storage で使用する場合は引き続き機能します。 Blob API を呼び出すアプリケーションは動作する可能性があります。
Windows Azure Storage Blob (WASB) ドライバー
現時点では、BLOB API のみで動作するように設計された WASB ドライバーでは、いくつかの一般的なシナリオで問題が発生します。 特に、階層型名前空間が有効なストレージ アカウントのクライアントである場合です。 これらの問題は、Data Lake Storage のマルチプロトコル アクセスによっても軽減されません。
階層型名前空間が有効なストレージ アカウントへのクライアントとして WASB ドライバーを使用することはできません。 代わりに、Hadoop 環境で Azure Blob File System (ABFS) ドライバーを使用することをお勧めします。 Hadoop branch 3 より前のバージョンを使用するオンプレミスの Hadoop 環境から移行しようとしている場合は、お客様と組織にとって適切な方法についてご連絡できるように、Azure サポート チケットを開いてください。
BLOB 機能の論理的な削除
論理削除されたファイルまたはディレクトリの親ディレクトリの名前が変更された場合、論理削除された項目が Azure portal で正しく表示されないことがあります。 そのような場合、PowerShell または Azure CLI を使用し、論理削除された項目を一覧表示し、復元できます。
イベント
アカウントにイベント サブスクリプションがある場合は、セカンダリ エンドポイントに対する読み取り操作によってエラーが発生します。 この問題を解決するには、イベント サブスクリプションを削除します。 また、非階層型名前空間に対応するアカウントに対して Data Lake Storage エンドポイント (abfss://URI) を使用しても、イベントは生成されませんが、BLOB エンドポイント (wasb:// URI) ではイベントが生成されます。
ヒント
セカンダリ エンドポイントへの読み取りアクセスは、読み取りアクセス geo 冗長ストレージ (RA-GRS) または読み取りアクセス geo ゾーン冗長ストレージ (RA-GZRS) を有効にした場合にのみ使用できます。