透過命令列重新整理流程輸出檔案

僅 Tableau Prep Builder 中支援。

可以使用命令列而不是 Tableau Prep Builder 執行流程以重新整理流程輸出。您可以使用此方法一次執行一個流程。此選項在已安裝 Tableau Prep Builder 的 Windows 和 Mac 電腦上都可用。

附註:若使用的是登入型授權管理 (LBLM),請確認有定期開啟 Tableau Prep。否則,租用可能會過期,從而導致通以命令行執行的流程失敗。也可以聯繫管理員將租用期限變更為最大長度。有關詳情,請參閱登入型授權管理(連結在新視窗開啟)

連接器限制:

  • JDBC 或 ODBC 連接器:從版本 2019.2.3 開始,可以使用命令列執行包含這些連接器的流程。
  • 雲端連接器:包含雲端連接器(例如 Google BigQuery)的流程無法從命令列執行。而是要手動執行流程,或在 Tableau ServerTableau Cloud 中使用 Tableau Prep Conductor 根據排程執行流程。有關詳情,請參閱將流程資料保持為最新狀態
  • 單一登入身份驗證:如果使用單一登入身份驗證,則不支援從命令列執行流程。可以改為從 Tableau Prep Builder 執行流程。
  • 多重要素驗證:Tableau Prep 命令列介面 (CLI) 不支援具有多重要素驗證 (MFA) 的 Tableau。有關詳情,請參閱 Tableau 知識庫中的此文章(連結在新視窗開啟)

對於 Windows 電腦,您也可以使用 Windows 工作排程器來排程此過程。有關詳細資訊,請參閱 Microsoft 線上說明中的工作排程器(連結在新視窗開啟)

使用命令列執行流程時,Tableau Prep Builder 會使用 Tableau Prep Builder 中指定的輸出步驟設定重新整理流程的所有輸出。有關如何指定輸出位置的資訊,請參閱建立資料擷取檔案和已發佈的資料來源(連結在新視窗開啟)。有關設定寫入選項(版本 2020.2.1 及更高版本)的資訊,請參閱設定寫入選項

執行流程之前

要使用命令列執行流程,您需要執行流程之電腦的管理員權限,同時需要下列資訊:

  • Tableau Prep Builder 的安裝路徑。

  • 如果連線至資料庫並將輸出檔案發佈到伺服器或資料庫(版本 2020.3.1 及更高版本),則需要一個包含所有必需認證的 credentials .json 檔案。

  • Tableau 流程 (.tfl) 檔案所在的路徑。

Credentials .json 檔案要求

附註:若流程連線到並輸出到本機檔案、網路共用上儲存的檔案或使用 Windows 驗證 (SSPI) 的輸入檔案,則不需要認證 .json 檔案。有關 Windows 驗證的詳細資訊,請參閱 Microsoft 線上說明中的 SSPI 模型(連結在新視窗開啟)

如果使用遠端連線,Tableau Prep Builder 將使用流程檔案和 credentials .json 檔案中的資訊來執行流程。例如,遠端連線的資料庫名稱和輸出檔案的專案名稱來自於流程,伺服器名稱和登入認證來自於 credentials .json 檔案。

  • 如果計劃重用資料,請將其放在不會被 Tableau Prep Builder 安裝過程覆蓋的資料夾中。
  • 若執行的流程包含以下任何一項,則必須包含一個 .json 檔案,其中包含連線所需的認證。
    • 連線到資料庫檔案或已發佈的資料來源。
    • 輸出已發佈到伺服器或資料庫(版本 2020.3.1 及更高版本)。
    • 流程包括 Rserve 或 TabPy 的指令碼步驟。.json 檔案必須包含連線到這些服務所需的認證。有關詳情,請參閱下方版本的陣列要求。
  • 流程中指定的認證和包含在 .json 檔案中的認證必須相符,否則該流程將執行失敗。
  • 執行該程序時,會使用主機名稱、連接埠和使用者名稱尋找 Tableau 流程檔案 (.tfl) 中相符的連線,並在執行程序之前更新。「埠 ID」和「網站 ID」是可選的(如果連線不需要此資訊)。
  • 如果是連線到已發佈資料來源,請在輸入連線中包含主機名稱、contentUrl 及連接埠(http 為 80,https 則為 443)。需要主機名稱才能在 Tableau 流程檔案 (.tfl) 中尋找相符的連線,contentUrl 及連接埠則是用來建立與伺服器的連線。

  • 如果連線至 Tableau Cloud,請在要連線的 Pod 之容器輸入連線中包含連接埠(80 或 443),並確保在伺服器連線 URl 中包含相應的容器首碼以及 online.tableau.com。有關 Tableau Cloud 的詳細資訊,請參閱 Tableau Cloud 說明中的與 Tableau Cloud 的 Tableau Bridge 連線(連結在新視窗開啟)
  • (版本 2021.4.1 及更高版本)若在流程中包含參數,則可以在命令列中建立並包含參數覆寫 .json 檔案,以變更當前預設值的參數值。有關更多資訊,請參閱執行包含參數值的流程

根據您的 Tableau Prep Builder 版本,認證資訊格式可能會不同。按一下以下標籤頁,檢視您 Tableau Prep Builder 版本的認證格式。

根據您的連線狀況,包含伺服器或資料庫認證或兩者。您的流程連線並輸出至相同伺服器或資料庫時,.json 檔案中僅需包含單一區塊。如果連線至使用不同認證的伺服器或資料庫,則使用逗號分隔陣列。

伺服器連線資料庫連線Rserver 或 Tableau Python 連線

連線區塊名稱:「tableauServerConnections」

在陣列中包含以下資料:

  • serverUrl(伺服器名稱)對於 Tableau Cloud,包括相應的 Pod 首碼和 online.tableau.com。例如,「https://10az.online.tableau.com」
  • contentUrl(網站 ID。針對 Tableau Server 或 Tableau Cloud,此資訊會出現在 URL 中的 /site/ 之後。例如,「https://my.server/#/site/mysite」請設定 "contentUrl": "mysite"))。
  • 連接埠(連接埠 ID)
  • 使用者名稱
  • 密碼

連線區塊名稱:「databaseConnections」

在陣列中包含以下資料:

  • 主機名稱(伺服器名稱)
  • 連接埠(連接埠 ID)
  • 使用者名稱
  • 密碼

僅當流程包含 R 或 TabPy 的指令碼步驟時,才包含此陣列。

連線區塊名稱:「延伸模組」

在陣列中包含以下資料:

  • extensionName:指定 "rSupport""pythonSupport"
  • 標準:包括「主機」和「連接埠」。若適用,還可以包括「使用者名稱」或「sslCertificate」(公共 .pem 檔案的內容編碼為 base64 字串)。
  • 敏感:若使用密碼,請包含「密碼」。否則,請包含空白陣列。

附註:在 .json 檔中,伺服器連線一律需要 ContentUrl。若連線到預設網站,例如:「https://my.server/#/site/」,請將 ContentUrl 設為空白。例如,"contentUrl": ""

執行包含參數值的流程

Tableau Prep Builder 版本 2021.4.1 及更高版本中支援該功能。

要從命令列執行包含參數值的流程,可以建立一個包含要使用的參數值的參數覆寫 .json 檔案。這些值會覆寫為參數定義的目前(預設)值。

該檔案獨立於 credentials.json 檔案,包含參數名稱和值。

附註:從版本 2022.1.1 開始,參數值不再需要以引號括住。在以前的版本中,所有參數名稱和值都必須包含引號。

範例

{
    "Parameter 1": Value 1,
    "Number Parameter": 40,
    "Boolean Parameter": True
}				

執行流程時,請在命令列中包含 -p --parameters 和檔案名稱。

範例:

Windows

 "\[Tableau Prep Builder install location]\Tableau Prep Builder <version>\scripts"\tableau-prep-cli.bat -t "path\to\[your flow file name].tfl" -p|--parameters parameters.override.json

Mac

/Applications/Tableau\ Prep\ Builder\ [Tableau Prep Builder version].app/Contents/scripts/./tableau-prep-cli -t path/to/[your flow file name].tfl -p|--parameters parameters.override.json

範例

本節顯示您可以使用 credentials .json 要求建立的不同認證檔案範例。

連線至伺服器連線

此範例顯示一個 .json 認證檔案,該認證檔案使用相同認證連線並輸出至伺服器連線:

{
 "tableauServerConnections":[
   {
    "serverUrl":"https://my.server",
    "contentUrl": "mysite",
    "port":443,
    "username": "jsmith",
    "password": "passw0rd$"
   }
 ]
}				

連線至伺服器連線及輸出至資料庫連線

此範例顯示一個 .json 認證檔案,該認證檔案連線至伺服器連線,但輸出至資料庫連線:

{
 "tableauServerConnections":[
   {
    "serverUrl":"https://my.server",
    "contentUrl": "mysite",
    "port":443,
    "username": "jsmith",
    "password": "passw0rd$"
   }
],
 "databaseConnections":[
   {
    "hostname":"example123.redshift.amazonaws.com",
    "port":"5439",
    "username":"jsmith",
    "password":"p@s$w0rd!"
   }
 ]
}

流程包括 Rserve 和 TabPy 指令碼連線,並輸出到資料庫連線

此範例顯示一個 .json 認證檔案,該檔案包括 Rserve 和 Tabpy 認證,並輸出到資料庫連線:

{
 "extensions": [
    {
	  "extensionName": "rSupport",
	  "regular": {
		"host": "localhost",
		"port": "9000",
		"username": "jsmith"
	},
	"sensitive": {	
	  "password": "pwd"	
	}
   },
   {
	"extensionName": "pythonSupport",
	"regular": {
	  "host": "localhost",
	  "port": "9000"
	},
	"sensitive": {
	}
   }
 ],										
 "databaseConnections":[
   {
    "hostname":"example123.redshift.amazonaws.com",
    "port": "5439",
    "username": "jsmith",
    "password": "p@s$w0rd!"
   },
   {
    "hostname":"mysql.mydb.tsi.lan",
    "port": "3306",
    "username": "jsmith",
    "password": "mspa$$w0rd"
   }
 ]
}			

連線及輸出至不同資料庫連線

此範例顯示一個 .json 認證檔案,該認證檔案連線並輸出至不同的資料庫連線:

{
 "databaseConnections":[
{
  "hostname":"example123.redshift.amazonaws.com",
  "port": "5439",
  "username": "jsmith",
  "password": "p@s$w0rd!"
 },
 {
   "hostname":"mysql.mydb.tsi.lan",
   "port": "3306",
   "username": "jsmith",
   "password": "mspa$$w0rd"
  }
 ]
}			

輸入適用於輸入和輸出連線的陣列。

附註:如果使用 Tableau Prep Builder 版本 2018.2.2 至 2018.3.1,則始終包括「inputConnections」和「outputConnections」陣列,即使流程不為輸入或輸出使用遠端連線。只需將這些陣列保留為空白。如果使用 Tableau Prep Builder 版本 2018.3.2 及更新版本,則無需包括空白陣列。

輸入連線輸出連線Rserver 或 Tableau Python 連線
  • 主機名稱(伺服器名稱)
  • contentUrl(已發佈資料來源一律需要。相關說明請參閱輸出連線)。
  • 連接埠(連接埠 ID)
  • 使用者名稱
  • 密碼
  • serverUrl
  • contentUrl(網站 ID。針對 Tableau Server 或 Tableau Cloud,此資訊會出現在 URL 中的 /site/ 之後。例如,「https://my.server/#/site/mysite」請設定 "contentUrl": "mysite")。
  • 使用者名稱
  • 密碼

僅當流程包含需要密碼的 R 或 TabPy 指令碼步驟時,才包括此陣列。

  • extensionName:指定 "rSupport""pythonSupport"
  • 認證:包括「密碼」。

範例

本節顯示您可以使用 credentials .json 要求建立的兩個不同認證檔案範例。

連線到已發佈資料來源

此範例顯示連線至已發佈資料來源,並將資料輸出至包含站點 ID 之伺服器的 .json 認證檔案

附註:如果 inputConnection 或 outputConnection 使用預設網站,例如「https://my.server/#/site/」,則將 ContentUrl 設定為空白。例如,"contentUrl": ""

{ 
  "inputConnections":[
    {
     "hostname":"https://my.server",
     "contentUrl": "mysite",
     "port":443,								
     "username": "jsmith",
     "password": "passw0rd$"
    }
 ],
  "outputConnections":[
    {
     "serverUrl":"https://my.server",
     "contentUrl":"mysite",
     "username":"jsmith",
     "password":"passw0rd$"
    }
 ]
}

連線至兩個資料庫

此範例顯示連線至 MySQL 及 Oracle,並將資料輸出至包含站點 ID 之伺服器的 .json 認證檔案。

{ 
  "inputConnections":[
    {
     "hostname":"mysql.example.lan",
     "port":1234,
     "username": "jsmith",				
     "password": "passw0rd"
  },
    {
     "hostname":"Oracle.example.lan",
     "port":5678,
     "username": "jsmith",				
     "password": "passw0rd" 
  }
], 
  "outputConnections":[
    {
     "serverUrl":"http://my.server",
     "contentUrl":"mysite",
     "username":"jsmith",
     "password":"passw0rd$"
    } 
  ]
}

流程包括 Rserve 和 TabPy 的指令碼步驟,並連線到資料庫

此範例顯示一個 .json 認證檔案,該檔案包含 Rserve 和 TabPy 服務的密碼,並連線到 MySQL。

{ 
  "inputConnections":[
    {
     "hostname":"mysql.example.lan",
     "port":1234,
     "username": "jsmith",				
     "password": "passw0rd"
  }
], 
  "extensions":[
    {
     "extensionName":"rSupport",
     "credentials":{
     "password":"pwd",
    }
  },
   {
	"extensionName" : "pythonSupport",
	"credentials": {
	"password": "pwd"
	}
   } 
  ]
}

建立認證檔案的相關提示

為了避免在執行流程時出現錯誤,請確保認證檔案遵循以下準則:

  • 如果使用 Tableau Prep Builder 版本 2018.2.2 至 2018.3.1,則始終包括「inputConnections」和「outputConnections」陣列,即使流程不為輸入或輸出使用遠端連線。只需將這些陣列保留為空白。

    如果使用 Tableau Prep Builder 版本 2018.3.2 及更新版本,則無需包括空白陣列。

    • 沒有遠端輸入連線?在 .json 檔案的頂部包括此語法

      {
       "inputConnections":[
        ],
    • 沒有遠端輸出連線?在 .json 檔案的底部包括此語法

    • "outputConnections":[
        ]
      }
  • 您的輸入連線是否沒有連接埠 ID,或者該連接埠已指定為伺服器名稱的一部分。

    如果您的連線沒有連接埠 ID,請不要在 .json 檔案中包括 "port":xxxx, 引用,連 "port": "" 也不要包括。如果伺服器名稱已包含連接埠 ID,請在主機名稱中包含連接埠 ID。例如,"hostname": "mssql.example.lan,1234"

  • 引用 "serverUrl": 時,不要在地址結尾包括「/」。例如,使用此 "serverUrl": "http://server",而不是此 "serverUrl": "http://server/"

  • 如果有多個輸入或輸出連線,請為檔案中的每個連線包括認證。

  • 若連線到已發佈資料來源,請務必在輸入連線中加入主機名稱和內容 URL。

執行流程

重要:以下範例包括 "Tableau Prep" 版本 2019.1.2 的名稱變更,變更為 "Tableau Prep Builder"。如果您使用的是更早版本,請改為使用「Tableau Prep」。

  1. 以管理員身份開啟命令提示字元或終端命令提示字元 (MacOS)。

  2. 使用下方顯示的語法執行下面的一個命令。

    • 流程連線到本機檔案或網路共用上存放的檔案,並發佈至本機檔案、網路共用上存放的檔案,或使用 Windows 驗證:

      附註:如果連線到或輸出至網路共用上存放的檔案,請為路徑使用 UNC 格式:\\伺服器\路徑\檔案名。它不能透過密碼保護。

      Windows

       "\[Tableau Prep Builder install location]\Tableau Prep Builder <version>\scripts"\tableau-prep-cli.bat -t "path\to\[your flow file name].tfl"

      Mac

      /Applications/Tableau\ Prep\ Builder\ [Tableau Prep Builder version].app/Contents/scripts/./tableau-prep-cli -t path/to/[your flow file name].tfl
    • 流程連線至資料庫或發佈至伺服器:

      Windows

      "\[Tableau Prep Builder install location]\Tableau Prep Builder <version>\scripts"\tableau-prep-cli.bat -c "path\to\[your credential file name].json" -t "path\to\[your flow file name].tfl"

      Mac

      /Applications/Tableau\ Prep\ Builder\ [Tableau Prep Builder version].app/Contents/scripts/./tableau-prep-cli -c path/to/[your credential file name].json -t path/to/[your flow file name].tfl
    • 流程檔案或認證檔案存放在網路共用上(為路徑使用 UNC 格式:\\伺服器\路徑\檔案名):

      Windows

      "\[Tableau Prep Builder install location]\Tableau Prep Builder <version>\scripts"\tableau-prep-cli.bat -c "\server\path\[your credential file name].json" -t "\server\path\[your flow file name].tfl"

      Mac:將網路共用映射到 Finder 中的 /Volumes 以使其保持持久,然後使用 /Volumes/.../[your file] 指定路徑:

      /Applications/Tableau\ Prep\ Builder\ [Tableau Prep Builder version].app/Contents/scripts/./tableau-prep-cli -c /Volumes/.../[your credential file name].json -t path/to/[your flow file name].tfl

有關常見錯誤和解決方法,請參閱使用命令列執行流程時的常見錯誤

在啟用累加式重新整理的情況下執行流程

在 Tableau Prep Builder 版本 2020.2.1 及更高版本以及從版本 2020.4 開始的 Web 版上受支援。將流程輸出寫入 Microsoft Excel 時,當前不支援累加式重新整理。

如果在伺服器上未啟用 Tableau Prep Conductor 來排程流程執行,則可以使用命令列中的累加式重新整理執行流程。只需在命令列中包括 --incrementalRefresh 參數,如下例所示。

Windows

 "\[Tableau Prep Builder install location]\Tableau Prep Builder <version>\scripts"\tableau-prep-cli.bat --incrementalRefresh -t "path\to\[your flow file name].tfl"

Mac

/Applications/Tableau\ Prep\ Builder\ [Tableau Prep Builder version].app/Contents/scripts/./tableau-prep-cli --incrementalRefresh -t path/to/[your flow file name].tfl

如果流程輸入步驟已啟用累加式重新整理,並正確設定累加式重新整理參數,Tableau Prep Builder 將執行以下操作:

  • 在已啟用累加式重新整理的流程中所有輸入都將使用累加式重新整理執行所有相應的輸出。
  • 如果流程中的輸入未啟用累加式重新整理,則將使用完整重新整理執行所有輸出。系統將以訊息顯示重新整理方法的詳細資訊。
  • 如果流程中的部分輸入已啟用累加式重新整理,則將使用累加式重新整理執行相應的輸出。其他輸出則將使用完整的重新整理執行,系統將以訊息顯示重新整理方法的詳細資訊。

有關設定流程以使用累加式重新整理的詳情,請參閱使用累加式重新整理重新整理流程資料

命令選項

如果要查看說明選項,請在命令列中包括 -h

命令選項說明說明
-c , --connections <arg>認證檔案的連線路徑。需要認證檔案所在的路徑。
-d, --debug調試流程程序。包括此選項以檢視更多資訊,來幫助調試重新整理流程的問題。記錄檔存放位置:My Tableau Prep Builder Repository\Command Line Repository\Logs
-dsv, --disableSslValidation停用 SSL 驗證 (MacOS)在 MacOS 上使用命令列執行流程時,可能會出現要求提供鑰匙圈使用者和密碼的對話方塊。從 Tableau Prep Builder 2019.3.2 版開始,您可以輸入這個額外參數來停用此鑰匙圈對話方塊。例如,/Applications/Tableau\ Prep\ Builder\ [Tableau Prep Builder version].app/Contents/scripts/./tableau-prep-cli -dsv -c path/to/[your credential file name].json -t path/to/[your flow file name].tfl
-h, --help檢視語法選項的說明。

此說明選項或語法錯誤顯示以下資訊:

usage: tableau-prep-cli [-c <arg>] [-d]  [-h] [-t <arg>]
-c,--connections <arg>        Path to a file with all connection information
-d,--debug                    This option is for debugging
-dsv,--disableSslValidation   Disable SSL validation
-h,--help                     Print usage message
-inc,--incrementalRefresh     Run incremental refresh for all outputs that are configured to support it
-t,--tflFile <arg>            The Tableau Prep Builder flow file	
-inc, --incrementalRefresh為設定為使用累加式重新整理的所有輸出執行累加式重新整理。

包括此選項,為設定為使用累加式重新整理的所有輸入執行累加式重新整理。累加式重新整理讓 Tableau Prep Builder 只能檢索和處理新列,而非流程中的所有列。

輸入步驟中的累加式重新整理配置設定可決定以累加方式執行哪些流程輸出。所有其他輸出則將使用完整的重新整理執行,系統將以訊息顯示重新整理方法的詳細資訊。

有關使用累加式重新整理執行流程的詳情,請參閱 使用累加式重新整理重新整理流程資料

-t, --tflFile <arg>.tfl 流程檔案需要 .tfl 流程檔案所在的路徑。
-p, --parameters 參數覆寫 .json 檔案若要覆寫套用於流程的目前(預設)參數值,請包含此檔案。有關使用流程參數的詳細資訊,請參閱在流程中建立和使用參數

語法範例

下面的命令列顯示使用以下條件執行流程的四個不同範例:

  • Tableau Prep Builder 版本:2022.1.1

    重要:以下範例包括 Tableau Prep 版本 2019.1.2 的名稱變更,變更為 Tableau Prep Builder。如果您使用的是更早版本,請改為使用「Tableau Prep」。

  • 流程名稱:Flow1.tfl

  • 流程位置:C:\Users\jsmith\Documents\My Tableau Prep Builder Repository\Flows

  • 憑據檔案名:Flow 1.json

  • 憑據檔位置:C:\Users\jsmith\Desktop\Flow credentials

  • 存放在網路共用上的認證檔案位置:\tsi.lan\files\Flow credentials

流程連線到並發佈至本機檔案

Windows

"\Program Files\Tableau\Tableau Prep Builder 2022.1.1\scripts"\tableau-prep-cli.bat -t "\C:\Users\jsmith\Documents\My Tableau Prep Builder Repository\Flows\Flow1.tfl"

Mac

/Applications/Tableau\ Prep\ Builder\ 2022.1.1.app/Contents/scripts/./tableau-prep-cli -t /Users/jsmith/Documents/My\ Tableau\ Prep\ Builder\ Repository/Flows.Flow1.tfl

流程連線並發佈到本機檔案,並使用短形式進行累加式重新整理

Windows

"\Program Files\Tableau\Tableau Prep Builder 2022.1.1\scripts"\tableau-prep-cli.bat -inc -t "\C:\Users\jsmith\Documents\My Tableau Prep Builder Repository\Flows\Flow1.tfl"

Mac

/Applications/Tableau\ Prep\ Builder\ 2022.1.1.app/Contents/scripts/./tableau-prep-cli -inc -t /Users/jsmith/Documents/My\ Tableau\ Prep\ Builder\ Repository/Flows.Flow1.tfl

流程連線至資料庫並發佈至伺服器

Windows

"\Program Files\Tableau\Tableau Prep Builder 2022.1.1\scripts"\tableau-prep-cli.bat -c "\C:\Users\jsmith\Desktop\Flow credentials\Flow1.json" -t "\C:\Users\jsmith\Documents\My Tableau Prep Builder Repository\Flows\Flow1.tfl"

Mac

/Applications/Tableau\ Prep\ Builder\ 2022.1.1.app/Contents/scripts/./tableau-prep-cli -c /Users/jsmith/Desktop/Flow\ credentials/Flow1.json -t /Users/jsmith/Documents/My\ Tableau\ Prep\ Builder\ Repository/Flows.Flow1.tfl

流程發佈至伺服器,並且認證檔案存放在網路共用上

Windows

"\Program Files\Tableau\Tableau Prep Builder 2022.1.1\scripts"\tableau-prep-cli.bat -c "\\tsi.lan\files\Flow credentials\Flow1.json" -t "\C:\Users\jsmith\Documents\My Tableau Prep Builder Repository\Flows\Flow1.tfl"

Mac

/Applications/Tableau\ Prep\ Builder\ 2022.1.1.app/Contents/scripts/./tableau-prep-cli -c /Volumes/files/Flow\ credentials/Flow1.json -t /Users/jsmith/Documents/My\ Tableau\ Prep\ Builder\ Repository/Flows.Flow1.tfl
感謝您的意見反應!已成功提交您的意見回饋。謝謝!