datagen-data 是在 DataGen 沙盒內執行的命令列工具,用來尋找資料集、閱讀說明文件,並以 SQL
查詢資料。DataGen 會在兩種回合中安裝它:
部署管理員可以在整個部署中關閉這個 CLI。它不是讓你安裝在自己電腦上使用的工具。若要讓 Agent
取得資料,請把分析資料連結給它(請參閱在 Agent 與 App 中使用資料);Agent 會透過
它的
datagen-data Skill 找到這個 CLI。
位置與設定
腳本不在
PATH 上,請用完整路徑呼叫:
pip install --user --break-system-packages duckdb。
把 duckdb 加入 Agent 的沙箱環境,就不必每次執行都安裝。
憑證是針對目前回合簽發的授權,每次呼叫都會重新檢查存取權:從 Agent 移除分析資料後,
Agent 的下一個指令就會生效。
指令
在 Agent 回合中使用其他指令時,CLI 會印出用法並結束。
list
kind、sql_name、name、detail 與
description。分析資料的 detail 顯示已發布版本與執行模式;原始資料則顯示所屬連線與欄位數。
從這裡開始。
search
describe
model.md)。在資料建構器回合中,分析資料的頁面還會包含已發布的 SQL。針對分析資料撰寫
SQL 之前請先閱讀。
sql
list 印出的 SQL 名稱引用資料集。結尾的分號會被忽略。
- 實體化分析資料 透過簽署 URL 直接從 Parquet 快照讀取;DuckDB 只抓取需要的欄位與 row group。
- 在資料建構器回合中,PostgreSQL 原始資料 透過 DataGen 的 SQL 代理即時讀取(在有部署代理的環境中), 即時查詢的分析資料 則依其 SQL 計算。
- 在資料建構器回合中,讀取其他原始資料(MySQL、Oracle、S3 上的 Parquet、工作區檔案)或呼叫
oracle_query(...)的查詢,改由 DataGen 分析服務執行。最多回傳 500 列,且不能使用--out; 請在查詢中先彙總或篩選。 - 在 原生 SQL 分析資料的資料建構器回合中,所有查詢都在該分析資料的資料庫連線上以其自身方言執行, 同樣最多回傳 500 列。
values
check
僅限資料建構器。OK: passes the publish and refresh rules; reads ... 及 SQL 讀取的資料集,否則印出失敗原因。
connect
僅限資料建構器。psql 工作階段中查詢即時 PostgreSQL 原始資料。它會為這個回合寫入
~/.pg_service.conf 與 ~/.pgpass,並為每個連線印出
ATTACH 'service=datagen_<alias>' AS <alias> (TYPE postgres, READ_ONLY),以及每個原始資料的
SQL 名稱與 <alias>.<schema>.<table> 的對應。這些設定每個回合都會輪替,新回合請重新執行
connect。對 Oracle 連線,它會說明如何呼叫 oracle_query(...);對原生 SQL 分析資料,則說明
查詢會在哪個連線、以哪種方言執行。
snapshot
僅限資料建構器。SELECT * FROM read_parquet('<簽署 URL>'),供你在自己的 DuckDB
工作階段中使用。URL 5 分鐘後失效,需要時請重新執行取得新的 URL。不會下載任何檔案。
sync
僅限資料建構器。DIR(預設 /tmp/datagen-data-catalog),內容與 list、describe
呈現的相同。
SQL 名稱
除了原生 SQL 分析資料的建構器回合外,查詢都使用 DuckDB SQL。Agent 回合只會看到分析資料。
輸出
指令輸出為純文字,每次呼叫上限 60,000 個字元。sql 與 values 會在隨機的 <untrusted-data-...> 邊界內印出以 tab 分隔的資料列,最後附上摘要:
--out。
錯誤
錯誤訊息輸出到標準錯誤,並以datagen-data: 開頭。用法錯誤的結束碼為 2,請求或查詢失敗為 1。
DuckDB 或資料庫回報的查詢錯誤會原樣傳回,並把內部名稱換回資料集名稱,方便你依訊息修正 SQL。
下一步
在 Agent 與 App 中使用資料
把發布後的分析資料連結到 Agent。
建立分析資料
建立 CLI 讀取的分析資料。