2017-06-26 8 views
0

私は、新しいInsightに基づいて新しいファイルを作成するアプリケーションのインサイトで「連続エクスポート」プロセスを使用しています。Azure Data Factory - ブロブストレージから新しいファイルを読み取る方法

私はAzure Data Factoryを使用して、Blob Storageデータで1つのSQLテーブルをロードするプロセスを持っています。

問題: 私は、A.D.F.からBLOBストレージから新しいファイルのみを読み取ることができませんし、私はいつも同じデータを処理しています。現時点では、SQLストアドプロシージャのロードプロセスの後で繰り返されるデータは無視していますが、BLOBストレージから新しいデータのみを読み取ることでこのプロセスを効率的にしたいのですが、A.D.F.からこれを行うことはできますか? 誰でも助けてくれますか?これを達成するための代替手段はどれですか?

よろしく、これを達成するための選択肢がある

+0

データ工場は、時間ベースのフォルダとうまく動作し、これを支援するための機能を持っている - を参照して、[ここ](https://docs.microsoft.com/en-us/azure/data-factory/data-factory -functions-variables)。 – wBob

答えて

0

ルイ・フェルナンデス?

WebJobが受け入れられる場合、WebJob blobトリガーを使用して簡単に行うことができます。私たちは、デモコードが続きAzureのofficial document.

からWebJobトリガーについての詳細情報を取得できます。

public static void ProcessBlobTrigger([BlobTrigger("containername/{name}")] TextReader input, TextWriter log) 
     { 
      // your logic to process data 
     } 
+0

私はこのオプションを避けようとしていましたが、私が望んだものを達成するのは唯一のものなので、私はそれに従いました。感謝のトム –

0

私はあなたがプログラムで(カスタムパイプライン)古いブロブをアーカイブするreccomendそれらの名前を変更する「アーカイブ/ oldBlobName」で!その後、コード内でセグメント化されたBLOBの結果(データセットで指定したコンテナに含まれるBLOBのリスト)を繰り返し処理するときに、名前が "Archive"で始まるものをエスケープするだけです。

 foreach (IListBlobItem listBlobItem in blobList.Results) 
     { 
      CloudBlockBlob inputBlob = listBlobItem as CloudBlockBlob; 

      // Take all blobs from container that are not in "Archive" 
      if ((inputBlob == null) || string.IsNullOrEmpty(inputBlob.Name) 
          || inputBlob.Name.ToLower().StartsWith("Archive")) 
      { 
       continue; 
      } 
        ...