Azure Data Lake Depolama 2. Nesil'de dizinleri ve dosyaları yönetmek için PowerShell kullanma

Bu makalede, hiyerarşik ad alanına sahip depolama hesaplarında dizinleri ve dosyaları oluşturmak ve yönetmek için PowerShell'in nasıl kullanıldığı size gösterir.

Dizinlerin ve dosyaların erişim denetim listelerini (ACL) almak, ayarlamak ve güncelleştirmek için bkz. Azure Data Lake Depolama 2.Nesil'de ACL'leri yönetmek için PowerShell kullanma.

Başvuru | 1. Nesil'den 2. Nesil'e eşleme | Geri bildirim gönderin

Önkoşullar

PowerShell modülünü yükleme

  1. Aşağıdaki komutu kullanarak, yüklü PowerShell sürümünün veya 5.1 daha yüksek bir sürümü olduğunu doğrulayın.

    echo $PSVersionTable.PSVersion.ToString()
    

    PowerShell sürümünizi yükseltmek için bkz. Mevcut Windows PowerShell

  2. Az.Depolama modülünü yükleyin.

    Install-Module Az.Storage -Repository PSGallery -Force  
    

    PowerShell modüllerini yükleme hakkında daha fazla bilgi için bkz. Azure PowerShell yükleme

Bağlan hesabın

Komutlarınızı depolama hesabında yetkilendirmeyi nasıl elde etmek istediğinizi seçin.

1. Seçenek: Azure Active Directory (Azure AD) kullanarak yetkilendirme alma

Bu yaklaşımda sistem, kullanıcı hesabınıza uygun Azure rol tabanlı erişim denetimi (Azure RBAC) atamaları ve ACL izinleri sağlar.

  1. Bir Windows PowerShell penceresi açın, ardından komutuyla Azure aboneliğinde oturum Connect-AzAccount açın ve ekran yönergelerini izleyin.

    Connect-AzAccount
    
  2. Kimliğiniz birden fazla abonelikle ilişkili ise, etkin aboneliğinizi dizinleri oluşturmak ve yönetmek istediğiniz depolama hesabının aboneliği olarak ayarlayın. Bu örnekte yer tutucu değerini <subscription-id> aboneliğinizin kimliğiyle değiştirin.

    Select-AzSubscription -SubscriptionId <subscription-id>
    
  3. Depolama hesabı bağlamını al.

    $ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -UseConnectedAccount
    

2. Seçenek: Depolama hesabı anahtarını kullanarak yetkilendirme alma

Bu yaklaşımda sistem Azure RBAC veya ACL izinlerini denetlemez. Hesap anahtarı kullanarak depolama hesabı bağlamını elde.

$ctx = New-AzStorageContext -StorageAccountName '<storage-account-name>' -StorageAccountKey '<storage-account-key>'

Kapsayıcı oluşturma

Kapsayıcı, dosyalarınız için bir dosya sistemi olarak davranır. Cmdlet'ini kullanarak New-AzStorageContainer bir tane oluşturabilirsiniz.

Bu örnek adlı bir kapsayıcı my-file-system oluşturur.

$filesystemName = "my-file-system"
New-AzStorageContainer -Context $ctx -Name $filesystemName

Dizin oluşturma

cmdlet'ini kullanarak New-AzDataLakeGen2Item bir dizin başvurusu oluşturun.

Bu örnek kapsayıcıya adlı my-directory bir dizin ekler.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory

Bu örnek aynı dizini ekler, ancak izinleri, umask'i, özellik değerlerini ve meta veri değerlerini de ayarlar.

$dir = New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -Directory -Permission rwxrwxrwx -Umask ---rwx---  -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata  @{"tag1" = "value1"; "tag2" = "value2" }

Dizin özelliklerini gösterme

Bu örnek, cmdlet'ini kullanarak Get-AzDataLakeGen2Item bir dizin alır ve ardından özellik değerlerini konsola yazdırır.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dir =  Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname
$dir.ACL
$dir.Permissions
$dir.Group
$dir.Owner
$dir.Properties
$dir.Properties.Metadata

Not

Kapsayıcının kök dizinini almak için parametresini -Path atlar.

Bir dizini yeniden adlandırma veya taşıma

cmdlet'ini kullanarak bir dizini yeniden adlandır veya Move-AzDataLakeGen2Item taşı.

Bu örnek, bir dizini addan adına my-directory yeniden my-new-directory adlandırıyor.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dirname2 = "my-new-directory/"
Move-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -DestFileSystem $filesystemName -DestPath $dirname2

Not

-Forceİstemler olmadan üzerine yazmak için parametresini kullanın.

Bu örnek adlı dizini adlı my-directory alt dizinine my-directory-2 my-subdirectory taşır.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
$dirname2 = "my-directory-2/my-subdirectory/"
Move-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $dirname -DestFileSystem $filesystemName -DestPath $dirname2

Bir dizini silme

cmdlet'ini kullanarak Remove-AzDataLakeGen2Item bir dizini silin.

Bu örnek adlı bir dizini my-directory siler.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
Remove-AzDataLakeGen2Item  -Context $ctx -FileSystem $filesystemName -Path $dirname

bir istem -Force olmadan dosyayı kaldırmak için parametresini kullanabilirsiniz.

Dizinden indirme

cmdlet'ini kullanarak bir Get-AzDataLakeGen2ItemContent dizinden dosya indirin.

Bu örnekte adlı dizinden upload.txt adlı bir dosya my-directory indirilir.

$filesystemName = "my-file-system"
$filePath = "my-directory/upload.txt"
$downloadFilePath = "download.txt"
Get-AzDataLakeGen2ItemContent -Context $ctx -FileSystem $filesystemName -Path $filePath -Destination $downloadFilePath

Dizin içeriğini listeleme

cmdlet'ini kullanarak dizinin Get-AzDataLakeGen2ChildItem içeriğini listele. Kullanıcıların adını (nesne kimliği -OutputUserPrincipalName yerine) almak için isteğe bağlı parametresini kullanabilirsiniz.

Bu örnek, adlı dizinin içeriğini my-directory listeler.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -OutputUserPrincipalName

Aşağıdaki örnekte dizinde ACL Permissions yer alan her Group Owner öğenin , , ve özellikleri listelanır. özelliği -FetchProperty için değerleri almak için parametresi ACL gereklidir.

$filesystemName = "my-file-system"
$dirname = "my-directory/"
$properties = Get-AzDataLakeGen2ChildItem -Context $ctx -FileSystem $filesystemName -Path $dirname -Recurse -FetchProperty
$properties.ACL
$properties.Permissions
$properties.Group
$properties.Owner

Not

Kapsayıcının kök dizininin içeriğini liste için parametresini -Path atlar.

Upload dizine dosya yükleme

Upload cmdlet'ini kullanarak bir New-AzDataLakeGen2Item dosyayı dizine kaydedin.

Bu örnek adlı dosyayı adlı bir upload.txt dizine my-directory yükler.

$localSrcFile =  "upload.txt"
$filesystemName = "my-file-system"
$dirname = "my-directory/"
$destPath = $dirname + (Get-Item $localSrcFile).Name
New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $destPath -Source $localSrcFile -Force

Bu örnek aynı dosyayı karşıya yükler, ancak ardından hedef dosyanın izinleri, umask, özellik değerleri ve meta veri değerlerini ayarlar. Bu örnek ayrıca bu değerleri konsola yazdırır.

$file = New-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $destPath -Source $localSrcFile -Permission rwxrwxrwx -Umask ---rwx--- -Property @{"ContentEncoding" = "UDF8"; "CacheControl" = "READ"} -Metadata  @{"tag1" = "value1"; "tag2" = "value2" }
$file1
$file1.Properties
$file1.Properties.Metadata

Not

Bir dosyayı kapsayıcının kök dizinine yüklemek için parametresini -Path atlar.

Dosya özelliklerini gösterme

Bu örnek, cmdlet'ini kullanarak bir dosya Get-AzDataLakeGen2Item alır ve ardından özellik değerlerini konsola yazdırır.

$filepath =  "my-directory/upload.txt"
$filesystemName = "my-file-system"
$file = Get-AzDataLakeGen2Item -Context $ctx -FileSystem $filesystemName -Path $filepath
$file
$file.ACL
$file.Permissions
$file.Group
$file.Owner
$file.Properties
$file.Properties.Metadata

Dosyayı silme

cmdlet'ini kullanarak Remove-AzDataLakeGen2Item bir dosyayı silin.

Bu örnek adlı bir dosyayı upload.txt siler.

$filesystemName = "my-file-system"
$filepath = "upload.txt"
Remove-AzDataLakeGen2Item  -Context $ctx -FileSystem $filesystemName -Path $filepath

bir istem -Force olmadan dosyayı kaldırmak için parametresini kullanabilirsiniz.

1. Nesilden 2. Nesile Eşleme

Aşağıdaki tabloda, Data Lake Depolama 1. Nesil için kullanılan cmdlet'lerin Data Lake Depolama 2. Nesil cmdlet'lerini nasıl eşlediğini gösterir.

Data Lake Depolama 1. Nesil cmdlet'i Data Lake Depolama 2. Nesil cmdlet'i Notlar
Get-AzDataLakeStoreChildItem Get-AzDataLakeGen2ChildItem Varsayılan olarak, Get-AzDataLakeGen2ChildItem cmdlet'i yalnızca ilk düzey alt öğeleri listeler. -Recurse parametresi alt öğeleri özyinelemeli olarak listeler.
Get-AzDataLakeStoreItem
Get-AzDataLakeStoreItemAclEntry
Get-AzDataLakeStoreItemOwner
Get-AzDataLakeStoreItemPermission
Get-AzDataLakeGen2Item Get-AzDataLakeGen2Item cmdlet'inin çıkış öğeleri şu özelliklere sahiptir: Acl, Sahip, Grup, İzin.
Get-AzDataLakeStoreItemContent Get-AzDataLakeGen2FileContent Aşağıdaki Get-AzDataLakeGen2FileContent cmdlet'i dosya içeriğini yerel dosyaya indirir.
Move-AzDataLakeStoreItem Move-AzDataLakeGen2Item
New-AzDataLakeStoreItem New-AzDataLakeGen2Item Bu cmdlet, yeni dosya içeriğini yerel bir dosyadan karşıya yükler.
Remove-AzDataLakeStoreItem Remove-AzDataLakeGen2Item
Set-AzDataLakeStoreItemOwner
Set-AzDataLakeStoreItemPermission
Set-AzDataLakeStoreItemAcl
Update-AzDataLakeGen2Item Update-AzDataLakeGen2Item cmdlet'i yalnızca tek bir öğeyi otomatik olarak güncelleştirmez. Öğeleri otomatik olarak güncelleştirmek için Get-AzDataLakeStoreChildItem cmdlet'ini kullanarak listelenin ve ardından Update-AzDataLakeGen2Item cmdlet'ine işlem hattı ekleyin.
Test-AzDataLakeStoreItem Get-AzDataLakeGen2Item Öğe Get-AzDataLakeGen2Item cmdlet'i hata bildirecek.

Ayrıca bkz.