> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kasoftware.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Snowflake 端口配置

> 將知行之橋連線到 Snowflake 以進行資料集成和同步

Snowflake 端口允許你透過向 Snowflake 推送資料或從中拉取資料，將 Snowflake 整合到資料流中。

觀看這段簡短影片，瞭解如何使用知行之橋將 Snowflake 整合到你的 B2B 自動化中。

[https://www.youtube.com/embed/52aLvW9QTGw](https://www.youtube.com/embed/52aLvW9QTGw)

## 核心功能

* 整合雲資料倉儲平臺，支援安全的資料載入、查詢以及 Snowflake 特定的身分驗證
* 支援標準資料庫操作（Select、Lookup、Upsert 和預存程序）進行資料操作

請按照以下步驟將知行之橋連線到 Snowflake。

## 建立連線

若要允許知行之橋使用 Snowflake 中的資料，必須先建立到 Snowflake 的連線。建立此連線有兩種方式：

* 將 Snowflake 端口新增到工作流程中。然後在**設定**索引標籤中，單擊連線下拉式清單旁邊的**建立**。
* 開啟知行之橋**設定**頁面，然後開啟**連線**索引標籤。單擊**新增**，選擇 **Snowflake**，然後單擊**下一步**。

> [!NOTE]
>
> * 僅在首次建立連線時需要登入過程。
> * 到 Snowflake 的連線可以在多個 Snowflake 端口之間重複使用。

### 輸入連線設定

開啟新的連線對話方塊後，請按照以下步驟操作：

1. 提供所需資訊：

   * **Name** — 連線的靜態名稱。
   * **Type** — 始終設定為 Snowflake。
   * **Connection** — 從清單中選擇身分驗證方案。選項包括 **Password**、**OAuth**、**Okta**、**PrivateKey**、**Azure AD** 或 **PingFederate**。
   * **URL** — Snowflake 資料庫的完整 URL（僅 Password 和 OAuth 身分驗證）。
   * **User** — 用於 Snowflake 資料庫身分驗證的使用者名稱（除 OAuth 外的所有身分驗證方案）。
   * **Password** — 身分驗證使用者的密碼（僅 Password 和 Okta 身分驗證）。
   * **OAuth Client Id** — 帳戶的用戶端 ID（僅 OAuth 身分驗證）。
   * **OAuth Client Secret** — 帳戶的用戶端金鑰（僅 OAuth 身分驗證）。
   * **Private Key** — 帳戶的私密金鑰（僅 PrivateKey 身分驗證）。
   * **Private Key Type** — 帳戶的私密金鑰型別（僅 PrivateKey 身分驗證）。
   * **Private Key Password** — 私密金鑰密碼（僅 PrivateKey 身分驗證）。
   * **Warehouse** — Snowflake 倉庫的名稱。
   * **Schema** — Snowflake 資料庫的 Schema。
   * **Database** — Snowflake 資料庫的名稱。

2. 可選：單擊**高階**開啟高階連線設定下拉功能表。大多數情況下不需要這些設定。

3. 單擊**測試連線**，確保知行之橋可以使用所提供的資訊連線到 Snowflake。如果發生錯誤，請檢查所有欄位並重試。

4. 單擊**新增連線**以完成連線。

5. 在端口配置窗格的**連線**下拉式清單中，選擇新建立的連線。

6. 單擊**儲存更改**。

> [!NOTE]
>
> **高階**索引標籤上還包含特定於資料來源的身分驗證和配置選項。本文件未全部介紹這些選項，但你可以在我們網站的[線上幫助檔案](https://www.kasoftware.com/articles.html)頁面找到資料來源的詳細資訊。

## 選擇操作

建立到 Snowflake 的連線後，必須選擇 Snowflake 端口要執行的操作。下表概觀了每個操作及其在知行之橋工作流程中的位置。

| 操作 | 說明 | 工作流程位置 |
| - | - | - |
| [Upsert](/26.3/self-hosted/zh-Hant/connectors/snowflake/snowflake-upsert.md) | 插入或更新 Snowflake 資料。預設情況下，如果 Snowflake 中已存在記錄，則會使用輸入提供的值更新 Snowflake 中的現有資料。 | 末尾 |
| [Lookup](/26.3/self-hosted/zh-Hant/connectors/snowflake/snowflake-lookup.md) | 從 Snowflake 檢索值，並將這些值插入到工作流程中已存在的知行之橋訊息中。 **Lookup 查詢**決定端口將從 Snowflake 檢索什麼值。它應格式化為針對 Snowflake 表的 SQL 查詢。 | 中間 |
| [Lookup 預存程序](/26.3/self-hosted/zh-Hant/connectors/snowflake/snowflake-lsp.md) | 將進入端口的資料視為預存程序的輸入，然後將結果插入到工作流程中現有的知行之橋訊息中。 可以在**測試 Lookup** 模態框中單擊**顯示範例資料**按鈕，為所選預存程序提供範例輸入並預覽結果。 | 中間 |
| [Select](/26.3/self-hosted/zh-Hant/connectors/snowflake/snowflake-select.md) | 從 Snowflake 檢索資料並將其帶入知行之橋。 可以使用**過濾器**面板向 Select 新增過濾器。這些過濾器的功能類似於 SQL 中的 *WHERE* 子句。 | 開頭 |
| [執行預存程序](/26.3/self-hosted/zh-Hant/connectors/snowflake/snowflake-esp.md) | 將進入端口的資料視為預存程序的輸入，然後將結果傳遞到工作流程下游。 可以在**測試執行預存程序**模態框中單擊**顯示範例資料**按鈕，為所選預存程序提供範例輸入並預覽結果。 | 中間 |

## 進階選項卡

**高階**索引標籤上的許多設定會從當前使用的資料來源動態載入，因此本文件不介紹這些設定。你可以在我們網站的[線上幫助檔案](https://www.kasoftware.com/articles.html)頁面找到資料來源的詳細資訊。

下面描述的選項適用於所有資料來源。

### 訊息

> [!NOTE]
>
> **儲存至 Sent 資料夾**和**Sent 資料夾方案**設定已棄用，預設處於隱藏狀態。只有先前已啟用這些設定或將其配置為非預設值的端口才會顯示它們。若要保留成功處理的檔案副本，請在工作流程中右鍵單擊該端口，選擇**顯示成功路徑**，然後將成功路徑連線到[File 端口](/26.3/self-hosted/zh-Hant/connectors/file.md)。

| 設定 | 描述 |
| - | - |
| **儲存至 Sent 資料夾**（已棄用） | 將端口處理的檔案複製到 Sent 資料夾。預設停用。儲存到 Sent 資料夾中的檔案不受靜態加密保護。 |
| **Sent 資料夾方案**（已棄用） | 按所選時間間隔對 Sent 資料夾中的檔案進行分組。僅在啟用**儲存至 Sent 資料夾**時適用。 |

### 進階設定

*進階設定* 是依賴任意資料庫驅動來連線各種資料來源的端口（例如 Database、CData 和 API 端口）的通用設定。

| 設定 | 說明 |
| - | - |
| **自動截斷** | 啟用後，端口會自動截斷超過允許限制的任何字串或二進位列值。 |
| **命令逾時** | 命令執行逾時時長（秒）。 |
| **最後插入 ID 查詢** | 提供要執行的查詢，用於檢索最後插入記錄的自增 ID。 |
| **日誌級別** | 端口生成日誌的詳細程度。請求支援時，請將其設定為 **Debug**。 |
| **本地檔案方案** | 為端口輸出的訊息分配檔名的方案。可以在檔名中使用宏，動態包含識別碼和時間戳等資訊。有關更多資訊，請參見[宏](#宏)。 |
| **日誌訊息** | 勾選後，端口會在 Logs 目錄中將訊息副本與該訊息的日誌儲存在一起。如果停用此項，可能無法從**輸入**或**輸出**索引標籤下載檔案副本。 |
| **最大失敗記錄數** | 插入期間允許失敗且仍繼續處理的最大記錄數。預設值 0 表示任何錯誤都會導致輸入訊息標記為 Error，並復原所有未提交交易。值 -1 表示忽略所有錯誤，端口繼續嘗試插入後續記錄。正值表示端口會繼續嘗試插入記錄，直到達到該閾值。 |
| **輸出檔案格式** | 輸出資料的表示格式。預設值（XML）會使端口為每條處理記錄輸出一個 XML 檔案，也可以根據**最大記錄數**的值將多條記錄組合到單個資料結構中。CSV 和 TSV 選項會以各自的檔案格式輸出資料。對於包含子表的複雜表結構，此選項不可用。 |
| **處理更改間隔單位** | 僅適用於 Select 操作。當在**設定**索引標籤中 **Select 配置**部分的**高階**區域勾選**使用列 *columnname* 處理新的或更改的記錄**時，此項控制如何解釋**處理更改間隔**設定（例如小時、天或周）。有關此設定和以下兩個設定的詳細資訊，請參見[只處理新的或更改的記錄](/26.3/self-hosted/zh-Hant/connectors/snowflake/snowflake-ac.md#only-process-new-or-changed-records)。 |
| **處理更改間隔** | 當在**設定**索引標籤的 **Select 配置**部分勾選**使用列 *columnname* 處理新的或更改的記錄**時，此項控制知行之橋首次嘗試處理多少歷史資料。例如，保留預設值 180（天）表示知行之橋僅嘗試處理最近 180 天內建立或修改的資料。 |
| **處理更改開始日期** | 當在**設定**索引標籤的 **Select 配置**部分勾選**使用列 *columnname* 處理新的或更改的記錄**時，此項控制要檢索資料的開始日期。 |
| **重置歷史記錄** | 重置勾選**使用列 *columnname* 處理新的或更改的記錄**時儲存的快取。 |
| **批次處理輸入大小** | 如果資料來源支援批次處理，則為一個批次中的最大查詢數。 |
| **批次處理大小** | 一個批次處理組中的最大批次處理訊息數。 |
| **最大記錄數** | 單個輸出訊息中包含的最大記錄數。使用 -1 表示所有輸出記錄都應放入單個檔案，使用 0 表示端口可根據配置的**輸出檔案格式**自行決定。預設情況下，XML 每個檔案輸出一條記錄，平面檔案格式會將所有記錄包含在一個檔案中。 |
| **交易大小** | 一個交易中的最大查詢數。 |
| **處理延遲** | 放入 Input 資料夾的檔案延遲處理的時長（秒）。這是一箇舊版設定。最佳實踐是[使用 File 端口](/26.3/self-hosted/zh/flows/designing-a-flow.md#interacting-with-the-local-file-system)管理本地檔案系統，而不是使用此設定。 |
| **插入空值** | 未勾選（預設）時，端口在構建 INSERT 和 UPDATE 語句時會跳過空 XML 元素。這會使資料庫在 INSERT 語句中使用預設列值，並使 UPDATE 語句中的列值保持不變。勾選後，端口會在 INSERT 和 UPDATE 語句中包含空 XML 元素，並使用空字串作為列值。 |
| **插入 Null** | 未勾選（預設）時，端口在構建 INSERT 和 UPDATE 語句時會跳過 null XML 元素（由 `xsi:nil="true"` 屬性表示）。這會使資料庫在 INSERT 語句中使用預設列值，並使 UPDATE 語句中的列值保持不變。勾選後，端口會在 INSERT 和 UPDATE 語句中包含 null XML 元素，並使用 null 作為列值。以下情況會被視為 null：`Not exist`、`<element/>`、`<element xsi:nil="true"/>`、`<element xsi:nil="true"></element>`、`<element null="true"/>` 和 `<element null="true"></element>`。 |
| **Lookup 快取** | 勾選**啟用 Lookup 快取**後，端口會先對本地快取執行查詢，再在快取未傳回記錄時直接對資料來源執行查詢。未勾選（預設）時，查詢會直接對資料來源執行。以下 Lookup 快取選項僅在勾選**啟用 Lookup 快取**後可用。 |
| **Lookup 快取提供程式** | 指定用於連線快取資料庫的驅動程式。 |
| **Lookup 快取連接字串** | 設定後，端口會使用此處指定的資料庫進行快取。 |
| **Lookup 快取容差** | 指定端口應多久查詢一次資料來源以重新整理快取。與**容差單位**選項結合使用。 |
| **Lookup 快取容差單位** | 選擇 **Minute**、**Hour** 或 **Day**。 |
| **日誌子資料夾方案** | 指示端口按所選間隔對 `Logs` 資料夾中的檔案分組。例如，**Weekly** 選項會指示端口每週建立一個新子資料夾，並將該周的所有日誌儲存在該資料夾中。留空則表示端口將所有日誌直接儲存到 `Logs` 資料夾。對於處理大量交易的端口，使用子資料夾有助於保持日誌有序並提升效能。 |

### 其他設定

*其他設定* 適用於特定用例。

| 設定 | 說明 |
| - | - |
| **其他設定** | 允許你使用以分號分隔的清單配置隱藏端口設定（例如 `setting1=value1;setting2=value2`）。正常的端口用例和功能不應需要使用這些設定。 |

## 自動化索引標籤

### 自動化設定

*與端口自動處理檔案相關的設定。*

| 設定 | 說明 |
| - | - |
| **傳送** | 到達端口的檔案是否會自動傳送。 |
| **重試間隔** | 傳送失敗後重試前等待的分鐘數。 |
| **最大次數** | 端口處理檔案的最大次數。成功與否根據伺服器成功確認來衡量。如果設定為 0，端口會無限期重試該檔案。 |
| **接收** | 端口是否應自動查詢資料來源。 |
| **間隔** | 自動查詢嘗試之間的間隔。 |
| **小時後分鐘數** | 小時計劃的分鐘偏移量。僅當上面的間隔設定為\_每小時\_時適用。例如，如果此值設定為 5，自動化服務會在 1:05、2:05、3:05 等時間下載。 |
| **時間** | 嘗試發生的當天時間。僅當上面的間隔設定為\_每天\_、\_每週\_或\_每月\_時適用。 |
| **日期** | 嘗試發生的日期。僅當上面的間隔設定為\_每週\_或\_每月\_時適用。 |
| **分鐘** | 嘗試下載前等待的分鐘數。僅當上面的間隔設定為\_分鐘\_時適用。 |
| **Cron 運算式** | 表示 cron 運算式的五段字串，用於確定嘗試發生的時間。僅當上面的間隔設定為\_高階\_時適用。 |

### 效能

*與端口資源分配相關的設定。*

| 設定 | 說明 |
| - | - |
| **最大工作執行緒數** | 從執行緒池中消耗以處理此端口檔案的最大工作執行緒數。如果設定，此值會覆蓋[進階設定](/26.3/self-hosted/zh/getting-started/administration/settings/advanced-settings.md)頁面[效能設定](/26.3/self-hosted/zh/getting-started/administration/settings/performance-settings.md)部分的預設設定。 |
| **最大檔案數** | 分配給該端口的每個執行緒傳送的最大檔案數。如果設定，此值會覆蓋[進階設定](/26.3/self-hosted/zh/getting-started/administration/settings/advanced-settings.md)頁面[效能設定](/26.3/self-hosted/zh/getting-started/administration/settings/performance-settings.md)部分的預設設定。 |

## 告警索引標籤

*與告警配置相關的設定。*

在執行服務級別協議（SLA）之前，需要設定電子郵件告警通知。預設情況下，知行之橋使用[告警](/26.3/self-hosted/zh/getting-started/administration/settings/alerts.md)索引標籤上的全域設定。若要為此端口使用其他設定，請啟用**覆蓋全域設定**。

預設情況下，錯誤告警處於啟用狀態，這意味著只要發生錯誤就會傳送電子郵件。若要關閉，請取消勾選**啟用**核取方塊。

輸入**主題**（必填），然後可選擇輸入以逗號分隔的**收件人**電子郵件清單。

## SLA 索引標籤

*與服務級別協議（SLA）配置相關的設定。*

SLA 可用於配置工作流程中端口預計傳送或接收的數量，並設定預計達成該數量的時間範圍。當 SLA 未滿足時，知行之橋會傳送電子郵件警告使用者，並將 SLA 標記為\_存在風險\_；這意味著如果很快仍未滿足 SLA，它將被標記為\_已違反\_。這使使用者有機會介入，確定 SLA 未滿足的原因並採取適當操作。如果在風險時間段結束時 SLA 仍未滿足，則會將 SLA 標記為已違反，並再次通知使用者。

若要定義 SLA，請啟用**預期數量**，然後單擊**設定**索引標籤。

![空 SLA 配置](https://mintcdn.com/qiao/ilnLy7gsSdFqbKmI/public/images/sla_empty.png?fit=max\&auto=format\&n=ilnLy7gsSdFqbKmI\&q=85\&s=9cd47a4173ed889fe20ff78de28190be)

* 如果端口具有單獨的傳送和接收操作，請使用選項按鈕指定 SLA 適用的方向。
* 在視窗的**至少期望**部分：
  * 設定期望處理的最小交易數（數量）
  * 使用**每**欄位指定時間範圍
  * 指明 SLA 應何時生效。如果選擇**開始於**，請填寫日期和時間欄位。
  * 勾選希望 SLA 生效的星期幾。如有必要，可使用下拉式清單選擇**每天**。
* 在視窗的\*\*將狀態設定為“存在風險”\*\*部分，指定何時應將 SLA 標記為存在風險。
  * 預設情況下，只有 SLA 已違反時才會傳送通知。若要更改此行為，請勾選**傳送“存在風險”通知**。

以下範例顯示了為某個端口配置的 SLA：該端口預計在週一至週五每天接收 1000 個檔案。如果在時間段結束前 1 小時仍未收到 1000 個檔案，則傳送存在風險通知。

![SLA 配置範例](https://mintcdn.com/qiao/ilnLy7gsSdFqbKmI/public/images/sla_defined.png?fit=max\&auto=format\&n=ilnLy7gsSdFqbKmI\&q=85\&s=33e5282b3f7970e3e1fef056825d7772)

> [!NOTE]
>
> 如有必要，可以關閉 SLA 告警。這在維護視窗期間很有用。單擊導覽列上的**設定**，然後導航到**告警 > 常規告警**。單擊平板和鉛筆圖示進行編輯，並取消勾選 **SLA Alerts** 設定。

## 宏

在檔案命名策略中使用宏可以提高組織效率，並增強對資料上下文的理解。透過在檔名中加入宏，可以動態包含識別碼、時間戳和訊息頭資訊等相關資訊，為每個檔案提供有價值的上下文。這有助於確保檔名反映對組織重要的詳細資訊。

知行之橋支援以下宏，它們都使用以下語法：`%Macro%`。

| 宏 | 說明 |
| - | - |
| ConnectorID | 計算為端口的 ConnectorID。 |
| Ext | 計算為端口當前正在處理檔案的副檔名。 |
| Filename | 計算為端口當前正在處理檔案的檔名（包含副檔名）。 |
| FilenameNoExt | 計算為端口當前正在處理檔案的檔名（不包含副檔名）。 |
| MessageId | 計算為端口輸出訊息的 MessageId。 |
| RegexFilename:*pattern* | 對端口當前正在處理檔案的檔名應用 RegEx 模式。 |
| Header:*headername* | 計算為端口當前正在處理訊息上目標訊息頭（`headername`）的值。 |
| LongDate | 計算為系統當前日期時間的長格式（例如 Wednesday, January 24, 2024）。 |
| ShortDate | 計算為系統當前日期時間的 yyyy-MM-dd 格式（例如 2024-01-24）。 |
| DateFormat:*format* | 計算為按指定格式（`format`）表示的系統當前日期時間。有關可用日期時間格式，請參見[範例日期格式](/26.3/self-hosted/zh/scripting/date-formatters#date-formats-with-literal-characters)。 |
| Vault:*vaultitem* | 計算為指定保管庫項的值。 |
| Table | 計算為端口從中選擇資料的表名。 |
| PK | 計算為從表中接收記錄的主索引鍵值。 |
| Sequence | 根據接收的總記錄數計算為四位數字。 |
| FileFormat | 計算為輸出檔案格式（XML、CSV 或 TSV）。 |

### 範例

某些宏（例如 %Ext% 和 %ShortDate%）不需要參數，但其他宏需要參數。所有接受參數的宏都使用以下語法：`%Macro:argument%`

以下是一些接受參數的宏範例：

* %Header:headername%：其中 `headername` 是訊息上的訊息頭名稱。
* %Header:mycustomheader% 解析為輸入訊息上設定的 `mycustomheader` 訊息頭的值。
* %Header:ponum% 解析為輸入訊息上設定的 `ponum` 訊息頭的值。
* %RegexFilename:pattern%：其中 `pattern` 是規則運算式模式。例如，`%RegexFilename:^([\w][A-Za-z]+)%` 匹配並解析為檔名中的第一個單詞，且不區分大小寫（`test_file.xml` 解析為 `test`）。
* %Vault:vaultitem%：其中 `vaultitem` 是[保管庫](/26.3/self-hosted/zh/getting-started/administration/settings/global-settings-vault.md)中某項的名稱。例如，`%Vault:companyname%` 解析為保管庫中儲存的 `companyname` 項的值。
* %DateFormat:format%：其中 `format` 是可接受的日期格式（詳情請參見[範例日期格式](/26.3/self-hosted/zh/scripting/date-formatters#sample-date-formats)）。例如，`%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%` 解析為檔案上的日期和時間戳。

你還可以建立更復雜的宏，如以下範例所示：

* 在一個檔名中組合多個宏：`%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%%EXT%`
* 在宏外包含文字：`MyFile_%DateFormat:yyyy-MM-dd-HH-mm-ss-fff%`
* 在宏內包含文字：`%DateFormat:'DateProcessed-'yyyy-MM-dd_'TimeProcessed-'HH-mm-ss%`


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.