テーブル
テーブル API を使用すると、テーブルをプログラムで検査および管理できます。
サポートされている操作:
- リストテーブル.
GET https://api.telemetry.sh/tables - スキーマを取得します.
GET https://api.telemetry.sh/tables/<table>/schema - 保存期間を設定します.
PATCH https://api.telemetry.sh/tables/<table>/retention - パーティション列を設定します.
PATCH https://api.telemetry.sh/tables/<table>/partition-columns - テーブルを削除します.
DELETE https://api.telemetry.sh/tables/<table>
ヘッダー
| 名前 | タイプ | 説明 |
|---|---|---|
Content-Type |
文字列 | 使用する application/json のために PATCH. |
Authorization |
文字列 | API キー (生のキーまたは Bearer <key>. |
スコープのルール:
GET /tablesそしてGET /tables/<table>/schema必要とするread,write、またはread-and-writePATCH /tables/<table>/retention,PATCH /tables/<table>/partition-columns、そしてDELETE /tables/<table>必要とするwriteまたはread-and-write
テーブルパス契約
の <table> パス セグメントは転送前に API によって正規化されます。
- スペースはアンダースコアに変換されます
- 文字は小文字です
- 正規化後は、小文字の ASCII 文字、数字、および
_許可されています
例:
Uber Ridesになるuber_ridesgraphjson_egress滞在しますgraphjson_egressmy-table拒否される理由は-許可されていません
予測可能な動作が必要な場合は、小文字、数字、アンダースコアのみを含む正規のテーブル名を使用してください。
リストテーブル
ゲット https://api.telemetry.sh/tables
サポートされているクエリパラメータ:
| フィールド | タイプ | 必須 | 正確な契約 | デフォルト |
|---|---|---|---|---|
page |
整数 | いいえ | 正の整数のページ番号。未満の値 1 拒否されます。 |
1 |
pageSize |
整数 | いいえ | 正の整数のページ サイズ。より大きい値 100 に固定されている 100。 API は従来のエイリアスも受け入れます page_size. |
50 |
成功したリクエストが返されます 200 OK:
{
"status": "success",
"pagination": {
"page": 1,
"pageSize": 50,
"total": 3,
"totalPages": 1,
"hasNextPage": false,
"hasPreviousPage": false
},
"tables": [
"heartbeat",
"telemetry_user_events",
"graphjson_egress"
]
}
例
curl "https://api.telemetry.sh/tables?page=1&pageSize=25" \
-H "Authorization: $API_KEY"
テーブルスキーマの取得
ゲット https://api.telemetry.sh/tables/<table>/schema
これは以下を返します:
- テーブルの解析されたスキーマ オブジェクト
- 現在の保持ポリシー (存在する場合)
- パーティションメタデータ (存在する場合)
成功したリクエストが返されます 200 OK:
{
"status": "success",
"table": "graphjson_egress",
"schema": {
"fields": [
{
"name": "timestamp_utc",
"data_type": {
"Timestamp": ["Millisecond", "UTC"]
},
"nullable": true,
"dict_id": 0,
"dict_is_ordered": false,
"metadata": {}
}
],
"metadata": {}
},
"retention_days": null,
"partition_columns": null,
"partition_spec_version": null
}
例
curl https://api.telemetry.sh/tables/graphjson_egress/schema \
-H "Authorization: $API_KEY"
テーブルの保持期間を設定する
パッチ https://api.telemetry.sh/tables/<table>/retention
本体
| フィールド | タイプ | 必須 | 正確な契約 | 例 |
|---|---|---|---|---|
retentionDays |
整数または null |
いいえ | データを保持する正の整数の日数。使用する null 保持をクリアしてデータを無期限に保持します。 API は従来のエイリアスも受け入れます retention_days. |
30 |
注:
- 未満の値
1拒否されます。 - 送ったら
{}または{"retentionDays": null}、保持がクリアされます。
成功したリクエストが返されます 200 OK:
{
"status": "success",
"table": "graphjson_egress",
"retention_days": 30,
"partition_columns": null,
"partition_spec_version": null
}
例
curl -X PATCH https://api.telemetry.sh/tables/graphjson_egress/retention \
-H "Content-Type: application/json" \
-H "Authorization: $API_KEY" \
-d '{
"retentionDays": 30
}'
明確な保持力
curl -X PATCH https://api.telemetry.sh/tables/graphjson_egress/retention \
-H "Content-Type: application/json" \
-H "Authorization: $API_KEY" \
-d '{
"retentionDays": null
}'
パーティション列を設定する
パッチ https://api.telemetry.sh/tables/<table>/partition-columns
パーティション列はテーブルの部分を編成するため、クエリがデータを読み取る前に等価フィルターで無関係なデータをスキップできます。順序は重要です。最も多くのクエリで使用されるフィールドを最初に置きます。参照 パーティション列の選択 選択のアドバイスとクエリの例については、
テーブルにはすでにスキーマが必要です。次のようなトップレベルまたはネストされたスカラー フィールドを使用できます。 account_id または request.region。文字列、ブール値、数値フィールドがサポートされています。
本体
| フィールド | タイプ | 必須 | 正確な契約 | 例 |
|---|---|---|---|---|
partitionColumns |
文字列の配列または null |
いいえ | 順序付けされたフィールド名。名前は省略され、小文字になります。使用する null, []、または {} パーティショニングを無効にします。 API は、snake_case エイリアスも受け入れます partition_columns. |
["account_id", "event"] |
フィールドが現在のスキーマに存在しない場合、フィールドがサポートされていないタイプである場合、重複している場合、空である場合、または空のネストされたパス セグメントが含まれている場合、リクエストは拒否されます。
列を変更すると、新しいパーティション仕様が作成されます。新しく取り込まれたデータはそれをすぐに使用しますが、既存の部分はバックグラウンドで書き換えられます。その移行中もクエリは完了したままですが、書き換えが進むにつれてパフォーマンスのメリットが最大限に得られます。
成功したリクエストが返されます 200 OK 効果的な設定を使用すると、次のようになります。
{
"status": "success",
"table": "graphjson_egress",
"retention_days": 30,
"partition_columns": ["account_id", "event"],
"partition_spec_version": 2
}
例
curl -X PATCH https://api.telemetry.sh/tables/graphjson_egress/partition-columns \
-H "Content-Type: application/json" \
-H "Authorization: $API_KEY" \
-d '{
"partitionColumns": ["account_id", "event"]
}'
パーティショニングを無効にする
curl -X PATCH https://api.telemetry.sh/tables/graphjson_egress/partition-columns \
-H "Content-Type: application/json" \
-H "Authorization: $API_KEY" \
-d '{
"partitionColumns": null
}'
テーブルの削除
削除 https://api.telemetry.sh/tables/<table>
これにより、テーブルとそのすべてのデータが完全に削除されます。
成功したリクエストが返されます 200 OK:
{
"status": "success",
"deleted_table": {
"name": "graphjson_egress"
}
}
例
curl -X DELETE https://api.telemetry.sh/tables/graphjson_egress \
-H "Authorization: $API_KEY"
関連するエンドポイント
Telemetry も引き続きレガシーをサポートします DELETE /delete 行を削除するためのエンドポイント where 条項。テーブル全体のライフサイクル操作が必要な場合は、テーブル API を使用します。
よくあるエラー
400 Bad Request正規化後にテーブル名に無効な文字が含まれている場合400 Bad RequestもしretentionDaysが正の整数ではない、またはnull400 Bad Requestパーティション列が無効であるか、現在のスキーマでサポートされているフィールドではない場合403 ForbiddenAPI キーに要求された操作に対する権限がない場合401 UnauthorizedAPI キーが見つからないか無効な場合404 Not Foundテーブルが存在しない場合