mcpField
C
convert-file

convert-file

github.com/duckdbデータ・データベース613797 回インストール28 週間前に更新
リポジトリ

convert-file について

DuckDB を使った対応形式間のデータファイル変換を案内するスキルです。入出力パスを解決し、形式に応じたオプションを選んで変換を実行し、結果を報告します。

主な機能

  1. 01入出力パスの解決
  2. 02出力拡張子による形式の判定
  3. 03表形式、JSON、空間形式への対応
  4. 04リモート入力と拡張機能の処理
  5. 05パーティションや圧縮の指定

活用シーン

  1. 01CSV ファイルを Parquet に変換
  2. 02JSONL や TSV としてエクスポート
  3. 03GeoJSON などの空間ファイルを変換
  4. 04変換出力にパーティションや圧縮を指定

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/duckdb/duckdb-skills --skill convert-file

インストール後、Claude Code で/convert-fileを入力して読み込まれたか確認します。

詳細

DuckDB を使用して、データファイルを別の形式に変換します。

入力ファイル:$0 出力ファイル:${1:-}

ステップ 1 — 入力と出力を解決する

入力:$0。ファイル名のみ(/ を含まない)の場合は、find "$PWD" -name "$0" -not -path '*/.git/*' 2>/dev/null | head -1 でフルパスを解決します。

出力:$1 が指定されている場合は、それを出力パスとして使用します。指定されていない場合は、入力ファイルと同じ名前で拡張子を .parquet にしたパスを既定値とします(例:data.csv → data.parquet)。

出力ファイルの拡張子から出力形式を推測します。

拡張子形式句
.parquet、.pq(既定値。句は不要です)
.csv(FORMAT csv, HEADER)
.tsv(FORMAT csv, HEADER, DELIMITER '\t')
.json(FORMAT json, ARRAY true)
.jsonl、.ndjson(FORMAT json, ARRAY false)
.xlsx(FORMAT xlsx) — INSTALL excel; LOAD excel; が必要です
.geojson(FORMAT GDAL, DRIVER 'GeoJSON') — LOAD spatial; が必要です
.gpkg(FORMAT GDAL, DRIVER 'GPKG') — LOAD spatial; が必要です
.shp(FORMAT GDAL, DRIVER 'ESRI Shapefile') — LOAD spatial; が必要です

ステップ 2 — 変換する

単一の DuckDB コマンドを実行します。入力形式と出力形式の両方に応じて、必要な拡張機能のロード文を先頭に追加します。

duckdb -c "
<EXTENSION_LOADS>
COPY (FROM '<INPUT_PATH>') TO '<OUTPUT_PATH>' <FORMAT_CLAUSE>;
"

リモート入力(s3://、https:// など)の場合は、read-file と同じプロトコル設定を先頭に追加します。

プロトコル先頭に追加する内容
s3://LOAD httpfs; CREATE SECRET (TYPE S3, PROVIDER credential_chain);
gs:// / gcs://LOAD httpfs; CREATE SECRET (TYPE GCS, PROVIDER credential_chain);
https:// / http://LOAD httpfs;

ユーザーがパーティション分割に言及した場合(例:「年ごとにパーティション分割」)、形式句に PARTITION_BY (col) を追加します。これは Parquet および CSV 出力でのみ機能します。

ユーザーが圧縮に言及した場合(例:「zstd を使用」)、Parquet 出力に CODEC 'zstd' を追加します。

ステップ 3 — 結果を報告する

成功した場合は、以下を報告します。

  • 入力ファイルと検出された形式
  • 出力ファイル、形式、サイズ(ls -lh)
  • すぐに計算できる場合は行数

失敗した場合:

  • duckdb: command not found → /duckdb-skills:install-duckdb に処理を委任します
  • 拡張機能が見つからない → インストールして再試行します
  • 入力の解析エラー → 入力形式を確認するか、最初に /duckdb-skills:read-file を試して内容を確認するようユーザーに提案します

コメント