今回のリリースから、正式版の機能だけを含んだ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オプションで並列度を変えることはできます。