Clay テーブル — インポート(データの取り込み)が止まった場合、実行・設定・データ拡張に問題があると判断する前に、まず行容量(テーブルに保存できる最大データ行数)の上限に達していないか確認してください。 次のような場合に使用: - ユーザーが「なぜ新しい行が追加されないのか?」と質問した - ユーザーが「インポートが止まってしまった」と報告した - ユーザーが「このテーブルは満杯になっているのか?」と尋ねた
Clay tables — check the row-capacity ceiling when imports stall, before assuming a run/config/enrichment problem. Use when the user asks "why aren't new rows being added?", "why is the import stuck?", or "is this table full?".
次のような場合に使用: 「新しい行が追加されないのはなぜ?」「インポートが止まっているのはなぜ?」「このテーブルは満杯?」、または行が表示されない理由についての質問。実行、設定、データ補強(別のデータソースから情報を付加する処理)に問題があると判断する前に、まず容量をチェックしてください。テーブルが満杯になると、新しい行は静かに拒否されるため、インポートが壊れたように見えてしまいます。
対象: 通常のテーブルのみ。アーカイブテーブル(他のテーブルの archive.tableId から生成された t_... で始まるテーブル)には上限がありません。ユーザーがアーカイブテーブルを指している場合は、チェックが当てはまらないことを伝え、元のテーブルに誘導してください。
Clayテーブルは、行の上限 に達すると新しい行を受け入れなくなります。上限は デフォルトで50,000行 ですが、プラン選択やテーブルごとの個別設定によって変わります。プランによってはもっと低く設定でき、テーブルごとの上書き設定で高くできます。ただし、CLIはその実効値を表示しません。同じ上限ロジックは以下にも適用されます。
rowCount — テーブル自体の行数合計(clay tables get で取得)。上限に達するとテーブルは新しい行を受け入れません。numSourceRecords — テーブルにデータを供給するソースの行数(テーブルの source 列から読み込み、clay tables columns list でアクセス)。制限されたソースは、テーブル自体に余裕があっても、それ以上のレコードを送信できません。つまり、rowCount または何らかのソースの numSourceRecords のいずれか が上限に達していれば、そのテーブルは容量に制約があります。最大のものだけでなく、すべてのソースを調べてください。
clay tables get で rowCount を取得し、clay tables columns list でソース数を取得します。各コマンドの --help で形式を確認できます。テーブルのスキャンは不要で、2つのコマンドだけです。テーブル自体の行数合計を読み込む:
clay tables get <tableId> | jq .rowCount
各ソースの行数を読み込む:
clay tables columns list <tableId> | jq '[ .data[] | select(.type == "source") | .sources[] | {name, numSourceRecords} ]'
その後、rowCount とすべてのソースの numSourceRecords をデフォルト上限(50,000)と比較してください。いずれかが上限以上に達していれば、そのテーブルは容量に制約があります。
上限までの余裕の大きさは緊急度ではありません。 上限に「近い」ことだけを問題として分類しないでください。47,000行が重要かどうかは、テーブルの充填速度次第です。ユーザーが使用可能期間の見積もりを求める場合は、充填速度を計測してください。rowCount を読み込み、数分待ってから再度読み込み、「上限までの時間」(余裕 / 速度)を報告してください。割合ではなく時間です。数値が動いていなければ、報告する緊急性はありません。単に余裕を述べるだけで十分です。
まず判定結果を述べ、その次に数値を示します。テーブル自体の rowCount か、特定のソースかを明示してください。
満杯 — テーブル自体の行数:
People — 満杯です(rowCount 50,000、デフォルト上限に達しています)。
テーブルは行数上限に達しているため、新しい行は拒否されています。
インポートが記録を追加していない理由はこれです。実行や설定の問題ではありません。
対処法:別のテーブルに分割するか、行数を削除して容量を解放してください。
満杯 — ソースが制限されている:
Leads — 「Salesforce Import」ソースで満杯です(numSourceRecords 50,000)。
rowCount は 41,200 なのでテーブル自体には余裕がありますが、そのソースは
これ以上のレコードを送信できません。Salesforce からの新しい行は、ソースが
上限以下になるまで表示されません。
満杯ではない — 余裕があり、求められた場合は使用可能期間も提示:
Accounts — 上限に達していません(rowCount 47,300、デフォルト 50,000 に対して
2,700行の余裕があります)。計測した充填速度は直近5分間で毎時約 600行
→ 現在のペースで上限まであと4~5時間。今日中に分割またはデータ削除を
検討する価値があります。
Contacts — 上限に達していません(rowCount 12,400、約 37,600行の余裕があります)。
容量は問題ではありません。
容量が除外されたら、本来の問題に進みます(エラーが発生したソース、実行されなかったデータ補強など)。ユーザーが「行が表示されない」という質問で来た場合は、ここから /tables-error-sweep または /tables-trace に引き継いでください。
rowCount だけに削減されます(jqコマンドが対応)。Use when: "why aren't new rows being added?", "why is the import stuck?", "is this table full?", or any question about rows failing to appear. Check capacity before assuming a run, config, or enrichment problem — a full table silently stops accepting rows, which looks like a broken import.
Scope: regular tables only. Archive tables are not subject to this ceiling — if the user points at an archive (t_... that came from another table's archive.tableId), say the check doesn't apply and redirect to the parent table.
A Clay table stops accepting new rows once it reaches its row ceiling. The ceiling is 50,000 by default, but it is plan- and table-dependent — plans can set it lower, and per-table overrides can raise it — and the CLI does not expose the effective value. The same ceiling logic applies to:
rowCount — the table's own row total (clay tables get). At the ceiling, the table won't take new rows.numSourceRecords — a source feeding the table, read from the table's source columns (clay tables columns list → sources[] on each source column). A capped source can't push more records in, even if the table itself has room.So the table is constrained if rowCount OR any source's numSourceRecords is at its ceiling. Evaluate every source, not just the largest.
clay tables get for rowCount, and clay tables columns list for the source counts (shapes in each command's --help). Two commands — no row scan needed.Read the table's own row total:
clay tables get <tableId> | jq .rowCount
Read each source's count:
clay tables columns list <tableId> | jq '[ .data[] | select(.type == "source") | .sources[] | {name, numSourceRecords} ]'
Then compare rowCount and every source's numSourceRecords against the default ceiling (50,000) yourself — the table is constrained if any of them is at or above it.
Proximity is not urgency. Don't classify "close to the ceiling" as a problem by itself — whether 47k matters depends entirely on how fast the table is filling. When the user needs a runway estimate, measure the fill rate: read rowCount, wait a few minutes, read it again, and report time to ceiling (headroom / rate), not percent-of-ceiling. If the counts aren't moving, there is no urgency to report — just state the headroom.
Lead with the verdict, then the number that drives it. Name whether it's the table's own rowCount or a specific source.
FULL — table's own rows:
People — FULL (rowCount 50,000, the default ceiling).
The table has hit its row ceiling, so new rows are being rejected.
That's why the import isn't adding records — it's not a run or config issue.
Fix: split into another table, or remove rows to free capacity.
FULL — a source is capped:
Leads — FULL via source "Salesforce Import" (numSourceRecords 50,000).
rowCount is 41,200, so the table itself has room, but that source can't push more
records in. New rows from Salesforce won't appear until the source is under its cap.
Not full — with headroom and, when asked, runway:
Accounts — not at the ceiling (rowCount 47,300; 2,700 rows of headroom against the
default 50k). Measured fill rate ~600 rows/hour over the last 5 minutes → roughly
4-5 hours to the ceiling at the current pace. Worth splitting or pruning today.
Contacts — not at the ceiling (rowCount 12,400; ~37,600 rows of headroom). Capacity
isn't the problem here.
When capacity is ruled out, move on to whatever the real question was (an errored source, an enrichment that didn't run, etc.). If the user came in with "rows aren't appearing," hand off to /tables-error-sweep or /tables-trace from here.
rowCount alone (the jq handles this).原文・著作権は Anthropic および各プラグイン作者に帰属します。日本語訳は Claude API による自動翻訳です。