1

オンプレミスストレージ(すなわち、ファイル)から月単位のCSVファイルをAzure blob/SQLテーブルにロードすることを伴う高速アプリケーション/クイックウィンソリューションを構築しています。それぞれ50000行を持つ4つのファイルがあり、ファイル名に月の名前が付いています。オンプレミスから定期的なCSVファイルをAzure dbにロード

ファイルから月の名前を何とか取得できるようにしながら、これらのファイルをブロブまたはストレージに転送する最もよく知られた方法は何ですか。オンプレミスフォルダの古いファイルは無視され、新しいものだけが読み込まれます。

以前は、この動作を簡単にサポートするためにSSISを使用できましたが、データファクトリなどのクラウドベースのソリューションを探しています。

私はAzure Blobに前提を試みましたが、古いファイルが転送されるのを避けることができず、ファイル名を取得することもできません(ただし、挿入/変更された日付を使用することもできます)。

提案がありますか?アイデア?あなたは(潜在的にADFと画策)ストレージブロブまたはAzureのデータ湖ストアへのアップロードを使用して、ファイル名の構造を維持することができ

+1

データ工場はほぼ確実にこれを行うためのツールです。これには日付と時刻の関数があります(例:[here](https://docs.microsoft.com/en-us/azure/data-factory/data-factory-functions-variables))。 – wBob

答えて

1

おかげで、。

その後、行セットと使用にあなたが両方のピボットに、いわゆるファイルセットの構文を使用する文のファイル/フォルダ名をEXTRACTを使用してCSVファイルにファイルを調理するAzureのデータ湖分析とU-SQLを使用してOUTPUTでき処理されるファイルの範囲を制限する述語。そのU-SQLジョブは、ADFを介して再度調整およびパラメータ化できます。最後にADFを使用して結果のファイルをSQL Azureに移動するか、SQL DWを使用する場合は結果のCSVにPolybaseを使用できます。ここで

は、疑似U-SQLスクリプトの簡単な例です:

DECLARE EXTERNAL @begin_date = DateTime.Parse("2017-06-01"); 
DECLARE EXTERNAL @end_date = DateTime.Parse("2017-06-08"); 

@data = EXTRACT col1 int, col2 string, date DateTime 
     FROM "/path/file_{date:yyyy}_{date:MM}_{date:dd}.csv" 
     USING Extractors.Csv(); 

@data = SELECT * FROM @data WHERE date BETWEEN @begin_date AND @end_date; 

OUTPUT @data TO "/output/cookeddata.csv" USING Outputters.Csv(); 
+0

これを達成するためのステップガイドがありますか? –

+0

上記の手順は概観です:)。ホワイトペーパーとデモは、Azure Data Lake、ADF、SQL Datawarehouseのドキュメントページにあります。これらのページでは、上記の手順を個別に示すことができます。私は、私のドキュメントのバックログにエンドツーエンドのエクスペリエンスの説明を載せます。 –

+0

ありがとうございます。私は今、原則としてその解決策を理解していると思いますが、今週はおそらく働くでしょう。しかし、私はUDFの仕事がADFを介してどのように調整され、パラメータ化されるかについてはまだ不明ですか? ADFのどこでUSQLジョブとリンクできますか? –

2

私は数週間前に同じニーズを持っていたと私はAzureの機能を使用するソリューションとネイティブAzureのSQLのために行くことにしましたBULK機能。

ファイルがBLOBストア(https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob)にコピーされるとすぐに、Azure機能が起動されます。すべてのファイル属性にアクセスすることができ、したがってファイル名にもアクセスできます。

Azure関数はAzure SQLでプロシージャを呼び出し、検出されたCSVファイル名を渡して、必要なすべてのプロパティとともに選択したテーブルに一括インポートできるようにします。

完全なコードサンプルと詳細な手順は、ここに用意されています

https://github.com/yorek/AzureFunctionUploadToSQL

関連する問題