Skip to main content
datagen-data 是在 DataGen 沙盒內執行的命令列工具,用來尋找資料集、閱讀說明文件,並以 SQL 查詢資料。DataGen 會在兩種回合中安裝它: 部署管理員可以在整個部署中關閉這個 CLI。它不是讓你安裝在自己電腦上使用的工具。若要讓 Agent 取得資料,請把分析資料連結給它(請參閱在 Agent 與 App 中使用資料);Agent 會透過 它的 datagen-data Skill 找到這個 CLI。

位置與設定

腳本不在 PATH 上,請用完整路徑呼叫:
如果沒有安裝 DuckDB,CLI 會提示並建議執行 pip install --user --break-system-packages duckdb。 把 duckdb 加入 Agent 的沙箱環境,就不必每次執行都安裝。 憑證是針對目前回合簽發的授權,每次呼叫都會重新檢查存取權:從 Agent 移除分析資料後, Agent 的下一個指令就會生效。

指令

在 Agent 回合中使用其他指令時,CLI 會印出用法並結束。

list

以表格列出這個回合可存取的所有資料集,欄位為 kind、sql_name、name、detail 與 description。分析資料的 detail 顯示已發布版本與執行模式;原始資料則顯示所屬連線與欄位數。 從這裡開始。
先列出名稱或說明包含 所有 關鍵字的資料集,再列出名稱、型別或說明包含任一關鍵字的欄位。 不分大小寫。

describe

印出單一資料集的頁面:欄位與型別、欄位說明、資料新鮮度、相關資料集,以及分析資料的說明文件 (model.md)。在資料建構器回合中,分析資料的頁面還會包含已發布的 SQL。針對分析資料撰寫 SQL 之前請先閱讀。

sql

在沙盒中用 DuckDB 執行一個查詢並印出結果。請以 list 印出的 SQL 名稱引用資料集。結尾的分號會被忽略。
查詢的執行方式:
  • 實體化分析資料 透過簽署 URL 直接從 Parquet 快照讀取;DuckDB 只抓取需要的欄位與 row group。
  • 在資料建構器回合中,PostgreSQL 原始資料 透過 DataGen 的 SQL 代理即時讀取(在有部署代理的環境中), 即時查詢的分析資料 則依其 SQL 計算。
  • 在資料建構器回合中,讀取其他原始資料(MySQL、Oracle、S3 上的 Parquet、工作區檔案)或呼叫 oracle_query(...) 的查詢,改由 DataGen 分析服務執行。最多回傳 500 列,且不能使用 --out; 請在查詢中先彙總或篩選。
  • 在 原生 SQL 分析資料的資料建構器回合中,所有查詢都在該分析資料的資料庫連線上以其自身方言執行, 同樣最多回傳 500 列。

values

列出某個欄位的相異值與出現次數,最常見的在前。篩選前先用它找出精確的值。

check

僅限資料建構器。
依發布與更新時套用的規則(資料集名稱、允許的函式)驗證分析資料 SQL,不讀取任何資料。 通過時印出 OK: passes the publish and refresh rules; reads ... 及 SQL 讀取的資料集,否則印出失敗原因。

connect

僅限資料建構器。
用於在你自己的 DuckDB 或 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 分隔的資料列,最後附上摘要:
資料列的值來自你的系統,可能包含看起來像指示的文字;邊界標記它們,讓 Agent 只把它們當作資料。 每個儲存格最多 500 個字元,儲存格中的換行會換成空白。若實際資料列多於印出的數量,摘要會註明; 請彙總、篩選,或使用 --out。

錯誤

錯誤訊息輸出到標準錯誤,並以 datagen-data: 開頭。用法錯誤的結束碼為 2,請求或查詢失敗為 1。 DuckDB 或資料庫回報的查詢錯誤會原樣傳回,並把內部名稱換回資料集名稱,方便你依訊息修正 SQL。

下一步

在 Agent 與 App 中使用資料

把發布後的分析資料連結到 Agent。

建立分析資料

建立 CLI 讀取的分析資料。