2017-01-03 7 views
3

複数のU-SQLスクリプトがあり、各U-SQLスクリプトの先頭にfilename変数を使用しています。我々は定数、変数、またはExtract入出力フォルダの設定ファイル

@tab1 = 
    EXTRACT f1 string, 
      f2 string 
    FROM **<path from config file>** 
    USING Extractors.Csv(skipFirstNRows:1); 

答えて

0

OUTPUTでそれらを使用するための任意のものを任意の設定ファイルに入力と出力フォルダを定義して読むことができる方法はありますアズールを使用してパラメータ化U-SQLクエリを実行することが可能ですデータ工場はherehereです。入力と出力フォルダがパラメータ化されているパイプラインの例を開始:たとえば、ADFの仕事を展開PowerShellを使用している場合

{ 
    "name": "ComputeEventsByRegionPipeline", 
    "properties": { 
     "description": "This is a pipeline to compute events for en-gb locale and date less than 2012/02/19.", 
     "activities": [ 
      { 
       "type": "DataLakeAnalyticsU-SQL", 
       "typeProperties": { 
        "scriptPath": "adlascripts\\SearchLogProcessing.txt", 
        "scriptLinkedService": "StorageLinkedService", 
        "degreeOfParallelism": 3, 
        "priority": 100, 
        "parameters": { 
         "in": "/input/SearchLog.tsv", 
         "out": "/output/Result.tsv" 
        } 
       }, 
... 

あなたが設定ファイルを読み込むことができます。

1

現在、U-SQLはベースURIの概念をサポートしていますが、現在はデフォルトのADLSアカウントのルートにハードコードされています。ベースURIを別の値(http://aka.ms/adlfeedback)に設定するリクエストを提出するか、スクリプトのパラメータ設定を少し使ってこれを自分で作成することができます。スクリプトは多くの入出力場所を持つことができるので、これをシステム設定オプションにすることはあまりにも複雑です。

次のようにあなたのU-SQLスクリプトをパラメータ化することができます

上記
// if you want to parameterize the whole path 
DECLARE EXTERNAL @in = "/default/input.csv"; 
// if you have standard output path that you want to optionally overwrite and a user specified output file 
DECLARE EXTERNAL @outdir = "/defaultoutput"; 
DECLARE EXTERNAL @outfile = "output.csv"; 
DECLARE @out = @outdir + "/" + @outfile; 

@data = EXTRACT .... FROM @in USING ....; 
... 
OUTPUT @res TO @out USING ...; 

も手続きに包まれ、アカウントに保存することができます。

注:U-SQLステートメントを使用せずに宣言と参照をグループ化し、将来の再利用のためにメタデータに格納する機能を開発中です。それはあなたのシナリオで "ボイラープレート"を削減するのに役立ちます。

提出では、あなたが

DECLARE @in = "/actual/input.csv"; 
DECLARE @outfile = "myoutput.csv"; 

//... rest of script or invocation of Procedure. 

wBobの返信でADFの一例で、実際のパスを付加することができますが、あなたのために先頭追加を行っています。他のツールやSDKは現在、パラメータ渡しモデルを定義する作業を行っています(あなた自身の前にあなた自身を追加することはできません)。

これはあなたのニーズに対応していますか?

関連する問題