2017-08-01 3 views
0

データレーン上のCSVファイルにデータを追加するためのユニットテストを書いています。同じファイルにテストデータを追加してテストしたいのですが、見つかったら挿入した行を削除したいのです。基本的に私はテストデータを見つけたら私のテストは合格しますが、テストは本番環境で実行されるので、テストデータを検索する必要があります。つまり、テストを実行した後にファイルに挿入した行を見つけなければなりません。usqlを使わずにdatalake storeのcsvファイルから行を削除するには?

usqlを使用しないで、usqlの使用に伴うコスト要因を避けるために、私はそれを実行したいと考えています。他の可能な方法は何ですか?

答えて

1

あなたはファイルから行(または任意の部分)を削除することはできません。 Azureデータレイクストアは、追加専用のファイルシステムです。一度コミットされたデータは、消去または更新できません。本番環境でテストしている場合、アプリケーションはテスト行を認識し、それらを適切に無視する必要があります。

もう1つの選択肢は、U-SQLのすべての行を読み取り、テスト行を除いた出力を書き込むことです。

0

他のビッグデータ分析プラットフォームと同様に、ADLA/U-SQLではファイル自体の追加をサポートしていません。あなたは、さらに制御したい場合は、次のことができ

DECLARE @inputFilepath string = "input/input79.txt"; 
DECLARE @outputFilepath string = "output/output.txt"; 


@input = 
    EXTRACT col1 int, 
      col2 DateTime, 
      col3 string 
    FROM @inputFilepath 
    USING Extractors.Csv(skipFirstNRows : 1); 


@output = 
    SELECT * 
    FROM @input 

    UNION ALL 

    SELECT * 
    FROM(
     VALUES 
     (
      2, 
      DateTime.Now, 
      "some string" 
     )) AS x (col1, col2, col3); 


OUTPUT @output 
TO @outputFilepath 
USING Outputters.Csv(quoting : false, outputHeader : true); 

:何ができることは、入力ファイルを取り、それにいくつかのコンテンツを追加する(例えば経てU-SQL)と、別のファイルとして書き出し、例えば簡単な例でありますPowerShellのSDKを介したいくつかのことを行う、などの項目をテスト存在:

Test-AdlStoreItem -Account $adls -Path "/data.csv" 

Move-AzureRmDataLakeStoreItemでアイテムを移動します。ここでは詳細:

Manage Azure Data Lake Analytics using Azure PowerShell

関連する問題