AzCopy 3.0 正式版と、TableとFileをサポートするAzCopy 4.0 プレビュー版がリリース

AzCopy – Announcing General Availability of AzCopy 3.0 plus preview release of AzCopy 4.0 with Table and File supportを意訳した投稿です。

今回のリリースから、正式版の機能だけを含んだRTM版と、正式版とプレビュー版の機能を含んだプリリリース版の2種類のAzCopyを公開することにしました。

blobへの対応だけのAzCopy 3.0と正式版の機能に加えて、Tableエンティティにも対応しているプレビューでの提供のAzCopy 4.0 プレビューの両方をダウンロードできます。

AzCopy 3.0 正式版

  • AzCopyで、すべてのパラメーター名を明示的に指定しなければならなくなりました。プレビュー時には、source、destination、ファイルパターンはパラメーター名を指定しなくても問題ありませんでした。
    AzCopy /Source:<source> /Dest:<destination> /Pattern:<pattern> [Options] …
  • AzCopyのヘルプメッセージを次のように変更しました。
    「AzCopy」と入力すると、ショートバージョンのヘルプが表示されます。
    「AzCopy /?」と入力すると、コマンドラインの詳細なヘルプが表示されます。
    「AzCopy /?:Sample」と入力すると、コマンドラインサンプルが表示されます。
    「AzCopy /?:<オプション名>」と入力すると、AzCopyオプションの詳細が表示されます。(例:AzCopy /?:SourceKey)
  • プレビュー時には、存在するファイルの上書きをしないを選択していると、存在しているファイルやBlobへのステータスが「failed」に設定されていました。3.0.0からは、「skipped」ステータスになり、コンソールウィンドウの「Transfer summary」に「Transfer skipped: <スキップ合計数>」と表示されます。

AzCopy 4.0.0-preview Azure Storage Table エンティティ(新しいプレビュ)

AzCopy 4.0.0-previewでは、TableエンティティをローカルファイルまたはAzure Storage ブロックブロブへのエクスポート、ストレージTableへのデータをインポートして戻すのに対応しています。この機能は、Tableの矛盾が発生しないスナップショットではない(トランザクションではない)ことに注意してください。すべてのエンティティをAzCopyが出力する前に、随時Tableのエンティティに変更が加えられるかもしれないからです。

  • Tableエンティティのエクスポート時、/Destパラメーターで、ローカルフォルダーからBlobコンテナーを指定します。
    AzCopy /Source:https://myaccount.table.core.windows.net/myTable/ /Dest:D:\test\ /SourceKey:key
    AzCopy /Source:https://myaccount.table.core.windows.net/myTable/ /Dest:https://myaccount.blob.core.windows.net/mycontainer/ /SourceKey:key1 /Destkey:key2

    AzCopyは、ローカルフォルダーまたはBlobコンテナーに、次のような命名規則で、JSONデーターファイルを生成します。
    <account name>_<table name>_<timestamp>_<volume index>_<CRC>.json
  • AzCopyは、デフォルトでひとつのJSONデータファイルを生成します。「/SplitSize: <MBで分割容量>」パラメーターを指定することで、複数のファイルを生成することができます。
    AzCopy /Source:https://myaccount.table.core.windows.net/myTable/ /Dest:D:\test\ /SourceKey:key /SplitSize:100
  • AzCopyは、デフォルトですべてのTableエンティティを出力します。並列エクスポーtするためには、「/PKRS: <パーティションキーレンジ>」オプションが必要です。
    例えば、「/PKRS:”aa#bb”」と指定すると、AzCopyは、次のような3つのキー範囲でエクスポート処理を並列に実行します。

    [<最初のパーティションキー>, aa]
    [aa, bb]
    [bb, <最後のパーティションキー>]

    AzCopy /Source:https://myaccount.table.core.windows.net/myTable/ /Dest:D:\test\ /SourceKey:key /PKRS:”aa#bb”

    そして次のように3つのJSONファイルが生成されます。
    myaccount_mytable_20140903T051850.8128447Z_0_0_C3040FE8.json
    myaccount_mytable_20140903T051850.8128447Z_1_0_0AB9AC20.json
    myaccount_mytable_20140903T051850.8128447Z_2_0_939AF48C.json

    並列処理数は、/NCオプションで指定できます。デフォルトでは、AzCopyは、/NCの値にマシンのコア数を使用します。ユーザが、/PKRSを指定すると、パーティションキー数と/NCで指定された数の小さい方の値を選択します。詳細は、「AzCopy /?:NC」と入力してください。

  • Tableにデータをインポートして戻すとき、/Manifestと/EntityOperationを指定する必要があります。
    AzCopy /Source:D:\test\ /Dest:https://myaccount.table.core.windows.net/mytable1/ /DestKey:key /Manifest:"myaccount_mytable_20140103T112020.manifest" /EntityOperation:InsertOrReplace
    AzCopy /Source:https://myaccount.blob.core.windows.net/mycontainer/ /Dest:https://myaccount.table.core.windows.net/mytable1/ /SourceKey:key1 /DestKey:key2 /Manifest:"myaccount_mytable_20140103T112020.manifest" /EntityOperation:InsertOrReplace
    Manifestファイルは、AzCopyを使用してTableエンティティをエクスポートした時に、destinationローカルフォルダーまたはBlobコンテナーに生成されます。Manifestファイルは、インポートする際にデータバリデーションの実行とすべてのデータファイルを見つけるのに使用されます。
    <account name>_<table name>_<timestamp>.manifest

    /EntityOperationは、エンティティインポート動作に影響を与えます。
    InsetOrSkip – Tableに存在しない場合新しいエンティティを挿入し、存在する場合はスキップ
    InsertOrMerge – 既存のエンティティとマージまたは、Tableに存在しない場合新しいエンティティを挿入します。
    InsertReplace – Tableに存在しない場合新しいエンティティを挿入し、既存のエンティティに上書きします。

    インポート時には、/PKRSオプションは使用できません。AzCopyはデフォルトで、マシンと同じコア数の並列度で、最初のファイルから順番にインポートします。/NCオプションで並列度を変えることはできます。