跳到內容

Database 數據庫節點

Database 節點用於在工作流中直接訪問關係型數據庫。通過配置連接信息和需要執行的 SQL 語句,你可以在流程中讀取業務數據、生成報表、或將AI產出的內容寫入數據庫,從而讓FlowAI與現有系統無縫協作。

節點適用場景

  • 數據拉取:查詢 CRM、訂單、庫存等核心系統,為後續分析或提示詞提供及時數據。
  • 結果回寫:將工作流產出的文本、結構化數據寫回數據庫,形成閉環。
  • 自動化巡檢:定時執行健康檢查或統計語句,結合通知節點推送異常。
  • 變量驅動查詢:在 SQL 中引用上游節點輸出,動態生成查詢條件,滿足個性化需求。

節點配置

連接配置

基礎連接信息

  1. 節點名稱

    • 為節點取一個易於識別的名稱,如“查詢訂單庫”或“寫入日報”
    • 下游節點通過 $節點名稱.result 引用執行結果
  2. 數據庫類型

    • 目前支持 MySQLPostgreSQL
    • 根據實際庫型選擇,系統會自動使用對應的連接方式
  3. 主機與端口

    • host 填寫數據庫地址,可使用內網域名或公網IP
    • port 非必填;空置時會使用數據庫的默認端口
  4. 數據庫名稱與憑證

    • database 指定目標庫/Schema
    • usernamepassword 為具備所需權限的賬號
    • 建議創建只讀或最小權限賬號,避免過度授權
  5. 變量插值

    • 所有輸入字段均可使用 FlowAI 變量,例如 $開始.data.host
    • 節點會先解析變量後再建立連接,方便聯動其他節點的輸出

SQL 與輸出格式

  1. SQL 語句

    • sql 字段填寫需要執行的語句
    • 節點會根據語句類型自動識別是“查詢”還是“寫入/更新”
    • 查詢語句(如 SELECTSHOWWITH 等)會返回結果集;其餘語句返回受影響行數等信息
  2. 結果格式

    • 默認以 Markdown 表格形式輸出,便於直接展示或發送通知
    • format 設置為 json 時,可獲得包含 columnsrowstruncated 信息的結構化結果,適合後續編排使用
  3. 最大返回行數

    • max_rows 控制查詢最多返回的記錄數,默認 200 行,上限 5000 行
    • 超出限制時,節點會截斷結果並在輸出中標記,避免一次性拉取過多數據

超時與高級選項

  1. 執行超時

    • timeout_seconds 定義單次執行的最長等待時間,默認 30 秒
    • 超時會中斷執行並返回錯誤,確保工作流不會長時間阻塞
  2. SSL 與其它參數

    • 對於 PostgreSQL,可通過 ssl_mode 控制連接方式(如 disablerequire
    • options 支持附加額外的連接參數,使用鍵值對形式,例如 { "timezone": "Asia/Shanghai" }
  3. 連接可靠性

    • 節點會在執行前校驗連接可用性,如無法建立連接會立即返回錯誤
    • 建議與循環或條件節點配合,統一處理失敗重試邏輯

節點輸出

  • $節點名稱.result:當語句執行成功時返回的數據。
    • 查詢語句默認輸出 Markdown 表格,或在 json 模式下輸出 { columns, rows, truncated } 結構。
    • 寫入/更新語句返回包含 rows_affected、可能的 last_insert_id 等信息的對象或表格。
  • $節點名稱.error:執行失敗時填入錯誤信息,成功時為空字符串,便於與條件節點聯動。

在後續節點中可以通過變量訪問執行結果,例如:

最近訂單:
{{$查詢訂單庫.result}}

若採用 JSON 格式輸出,下游節點可直接讀取 $查詢訂單庫.result 並在節點內部完成解析。

使用示例

示例:讀取最新訂單數據

  1. 在 Database 節點中填寫:

    host: db.internal.local
    database: sales
    type: mysql
    username: report_reader
    password: ******
    sql: SELECT id, customer, total_amount FROM orders ORDER BY created_at DESC LIMIT 10;
    format: markdown table
  2. 將節點命名為“查詢訂單庫”,後續在通知或LLM節點中插入 $查詢訂單庫.result,即可展示最新訂單列表。

  3. 若需要按日期篩選,可將條件節點輸出的日期變量嵌入 SQL,例如 ... WHERE created_at >= '{{ $時間節點.result }}'

示例:寫入工作流執行日誌

  1. 將上游生成的總結內容保存到變量 $總結.result

  2. 在 Database 節點配置以下語句:

    sql: INSERT INTO workflow_logs (workflow_id, summary, created_at)
    VALUES ({{ $流程信息.id }}, '{{ $總結.result }}', NOW());
    format: json
  3. 執行完成後,查看 $寫入日誌.result 返回的內容以確認寫入是否成功,並結合條件節點觸發後續動作。

最佳實踐

  • 劃分賬號權限:使用專門的讀寫賬戶,限制到所需的庫與表。
  • 控制數據量:合理設置 max_rows,必要時在 SQL 中增加 LIMIT
  • 監控錯誤:在下游增加條件或通知節點,及時處理 $節點名稱.error
  • 結合緩存:對於頻繁查詢的數據,可搭配變量節點或JSON處理節點緩存結果。
  • 記錄超時:若經常遇到超時,建議優化 SQL 或在數據庫側使用索引。

定製服務

官方團隊為您量身定製專業的自動化解決方案