mcpField
G
GoldenFlow

GoldenFlow

リモート
benseverndev-oss.github.ioデータ・分析126 週間前に更新
リポジトリ公式サイト

GoldenFlow について

GoldenFlowは、データエンジニア向けのデータ変換ツールです。PythonとTypeScriptから、ファイルやクラウドストレージ、データベースのデータを標準化・再構成でき、自動変換やストリーミング、スキーママッピング、業界別設定を備えています。

主な機能

  1. 01データの自動分析とクリーニング
  2. 02再利用可能な76種類の変換
  3. 03CSV、Excel、Parquetに対応
  4. 04S3とGCSのコネクター
  5. 05ストリーミングとディレクトリ監視
  6. 06スキーママッピングと業界別設定

活用シーン

  1. 01日付、電話番号、メール形式の統一
  2. 02到着したファイルの自動クリーニング
  3. 03メモリに収まらない大容量ファイルの処理
  4. 04システム間のデータ統合前の列マッピング

設定

リモートサーバーはインストール不要です。クライアントを選んで設定をコピーするか、ワンクリックで導入できます。

エンドポイントhttps://goldenflow-mcp-production.up.railway.app/mcp/
インストールコマンドをコピー
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

コマンドはターミナルで実行し、JSON は各クライアントの MCP 設定に貼り付けて再起動します。認可が必要なサーバーは初回接続時にログインを求めます。

パッケージ
pypigoldenflow2.2.0

ツール

詳細

移動しました。 このリポジトリは、benzsevern/goldenmatch モノレポの packages/python/goldenflow (and packages/typescript/goldenflow)/ に移動しました。このリポジトリはアーカイブされており、新しい開発はモノレポで行われます。

GoldenFlow

データ変換ツールキット — データがパイプラインに入る前に、扱いにくいデータを標準化、再構成、正規化します。 Ben Severn が開発しました。

ファイル(CSV、Excel、Parquet)、クラウドストレージ(S3、GCS)、ライブデータベースに対応しています。ゼロ設定モードでは、修正が必要な箇所を自動検出します。GoldenCheck が見つけた問題をクリーンアップし、GoldenMatch が必要とする形式に整えるコマンドは 1 つだけです。Python と TypeScript で利用でき、すべての機能が同等に使えます。

PyPI npm CI codecov Downloads Python 3.11+ Node 20+ License: MIT Docs DQBench Open In Colab

# Python
pip install goldenflow
goldenflow transform data.csv

# TypeScript / Node.js
npm install goldenflow
npx goldenflow-js transform data.csv

課題

データには、予測可能な形で問題が発生します。

  • 電話番号の形式が 15 種類もあります
  • 日付の形式に MM/DD/YYYY と YYYY-MM-DD が混在しています
  • 住所の略記が統一されていません
  • システム間で列名が一致しません(「fname」と「first_name」と「given_name」)
  • 値に先頭の空白、不要な Unicode 文字、スマートクォートが含まれています
  • カテゴリ値にばらつきがあります(「USA」、「US」、「United States」)

データエンジニアは、こうした問題を修正するために使い捨てのスクリプトを毎回作成しています。どのスクリプトも少しずつ異なり、再利用できるものはありません。

GoldenFlow は、変換を再利用可能、合成可能、自動化可能にします。


クイックスタート

Python
pip install goldenflow

# Auto-transform (zero-config)
goldenflow transform messy_data.csv

# Try the demo first
goldenflow demo
goldenflow transform demo_data.csv -c demo_config.yaml

# With config
goldenflow learn messy_data.csv -o config.yaml
goldenflow transform messy_data.csv -c config.yaml

# Schema mapping
goldenflow map --source system_a.csv --target system_b.csv

# Full pipeline
goldencheck scan data.csv
goldenflow transform data.csv
goldenmatch dedupe data_transformed.csv
TypeScript / Node.js
npm install goldenflow

# Auto-transform (zero-config)
npx goldenflow-js transform messy_data.csv

# Try the demo first
npx goldenflow-js demo
npx goldenflow-js transform demo_data.csv -c demo_config.yaml

# With config
npx goldenflow-js learn messy_data.csv -o config.yaml
npx goldenflow-js transform messy_data.csv -c config.yaml

# Schema mapping
npx goldenflow-js map -s system_a.csv -t system_b.csv
プログラムから実行(TypeScript)
import { TransformEngine } from "goldenflow";

const result = new TransformEngine().transformDf([
  { name: "  JOHN  ", phone: "(555) 123-4567", email: "[email protected]" },
]);
console.log(result.rows[0]);
// { name: "JOHN", phone: "+15551234567", email: "[email protected]" }

ゼロ設定モード

goldenflow transform customers.csv
# or just:
goldenflow customers.csv

GoldenFlow は各列のプロファイルを作成し、安全な変換を自動的に適用します。

  • 空白を削除し、Unicode を正規化します
  • 電話番号を E.164 形式に標準化します
  • メールアドレスの大文字・小文字を正規化します
  • 日付形式を解析し、ISO 8601 に標準化します
  • 郵便番号を正規化します(ゼロ埋め、+4 部分を削除)
  • スマートクォート/カールクォートを通常のクォートに置き換えます
  • ファジーマッチングによりカテゴリ値の誤記を自動修正します

出力:適用されたすべての変換を示すサイドカーマニフェストが付いた、クリーンな CSV です。

customers.csv           -> customers_transformed.csv
                        -> customers_manifest.json

マニフェストは監査証跡です。何が、なぜ変更され、どの行に影響したかを確認できます。


CLI コマンド

GoldenFlow には 14 個のコマンドがあります。よく使われるものは次のとおりです。

# Core transforms
goldenflow transform data.csv                    # Zero-config: auto-detect and fix
goldenflow transform data.csv -c config.yaml     # Apply saved config
goldenflow transform data.csv --domain healthcare # Use a domain pack
goldenflow transform data.csv --strict           # Fail on any transform error
goldenflow transform data.csv --llm              # Enable LLM-enhanced corrections
goldenflow data.csv                              # Shorthand: auto-routes to transform

# Schema & profiling
goldenflow map -s a.csv -t b.csv                 # Auto-map schemas between files
goldenflow profile data.csv                      # Show column profiles
goldenflow learn data.csv -o config.yaml         # Generate config from data patterns
goldenflow validate data.csv                     # Dry-run: show what would change
goldenflow diff before.csv after.csv             # Compare pre/post transform

# Continuous & scheduled
goldenflow watch ./data/                         # Auto-transform new/changed files
goldenflow schedule data.csv --every 1h          # Run on a schedule (5m, 1h, 30s...)
goldenflow stream large_file.csv --chunk-size 50000  # Stream-process in batches

# Discovery & history
goldenflow init data.csv                         # Interactive setup wizard
goldenflow demo                                  # Generate sample data to try
goldenflow history                               # Show recent transform runs
goldenflow history -n 50                         # Last 50 runs

# Integrations
goldenflow interactive data.csv                  # Launch TUI
goldenflow serve                                 # REST API for real-time transforms
goldenflow mcp-serve                             # MCP server for Claude Desktop
デフォルトのルーティング

サブコマンドを指定せずに goldenflow <file> を実行すると、自動的に transform に振り分けられます。

goldenflow customers.csv       # equivalent to: goldenflow transform customers.csv
goldenflow -                   # read from stdin, write to stdout

ストリーミング

メモリに読み込むには大きすぎるファイルには、StreamProcessor または stream コマンドを使用します。

goldenflow stream large_file.csv --chunk-size 50000
from goldenflow.streaming import StreamProcessor

processor = StreamProcessor(config=config)

# Process a single record
result = processor.transform_one({"name": "  John  ", "phone": "(555) 123-4567"})

# Process a batch
result = processor.transform_batch(df_batch)

# Stream a large file in chunks
for result in processor.stream_file("large_data.csv", chunk_size=10_000):
    write_to_output(result.df)

print(f"Processed {processor.batches_processed} batches")

クラウドコネクター

GoldenFlow は S3 と Google Cloud Storage からの読み込みと書き込みに透過的に対応しています。

# S3
goldenflow transform s3://my-bucket/raw/customers.csv -o s3://my-bucket/clean/

# GCS
goldenflow transform gs://my-bucket/data/records.csv
from goldenflow.connectors.s3 import read_s3, write_s3
from goldenflow.connectors.gcs import read_gcs, write_gcs

df = read_s3("s3://my-bucket/raw/customers.csv")
df = read_gcs("gs://my-bucket/data/records.csv")

クラウドパスは自動的に検出されるため、追加のフラグは不要です。


監視モード

ディレクトリにファイルが届いたら、自動的に変換します。

goldenflow watch ./data/
goldenflow watch ./incoming/ -c config.yaml -o ./processed/

GoldenFlow はディレクトリを定期的に確認し、新規または変更されたファイルに変換を適用します。


スケジュール設定

繰り返しスケジュールで変換を実行します。

goldenflow schedule data.csv --every 1h
goldenflow schedule data.csv --every 30m -c config.yaml -o ./output/

対応している間隔:30s、5m、1h、2h など。


セットアップウィザード

対話形式で YAML 設定を生成します。

goldenflow init data.csv

ウィザードはデータのプロファイリングを行い、変換を提案して、すぐに使える goldenflow.yaml を保存します。


履歴

GoldenFlow は、すべての変換実行を ~/.goldenflow/history/ に記録します。

goldenflow history         # Last 20 runs
goldenflow history -n 50   # Last 50 runs

各実行記録には、ソースファイル、行数、適用した変換、エラー、所要時間が含まれます。


スキーママッピング

異なるシステムのデータを統合する必要がある場合:

goldenflow map --source crm_export.csv --target warehouse_schema.csv

GoldenFlow は、名前の類似性とデータプロファイリングを使って、スキーマ間の列を自動でマッピングします。

crm_export.csv              warehouse schema
-----                       -----
email_address      ->       email (rename)
phone_number       ->       phone (rename)
fname              ->       first_name (alias match)
st                 ->       state (alias match)

曖昧なマッピングには、人による確認が必要であることを示すフラグが付けられます。確度の高いマッピングは自動的に適用されます。


ドメインパック

一般的な業界向けに、あらかじめ設定された変換セットです。5 種類すべてが実装済みです。

goldenflow transform patients.csv --domain healthcare
goldenflow transform employees.csv --domain people_hr
goldenflow transform transactions.csv --domain finance
goldenflow transform orders.csv --domain ecommerce
goldenflow transform listings.csv --domain real_estate
ドメインパック対象範囲
People/HR氏名の解析、SSN の書式設定、雇用日、性別/真偽値の標準化
Healthcare患者 ID、診断コード、診療日、HIPAA の機微フィールドの処理
Finance通貨の正規化、口座番号、取引日、金額の解析
E-commerceSKU の正規化、価格の解析、注文日、住所の標準化
Real Estate物件住所、掲載日、価格の正規化、地理フィールド

変換ライブラリ(76 種類の変換)

テキスト変換(18 種類)
変換処理内容
strip空白を削除します
lowercase / uppercase大文字・小文字を変換します
title_case適切な大文字表記にします("john smith" -> "John Smith")
normalize_unicodeNFKD 正規化を行い、アクセント記号を削除します
normalize_quotesスマート引用符/曲線引用符を通常の引用符に変換します
collapse_whitespace連続する空白を単一の空白にします
truncate:N文字数を N 文字に制限します
remove_punctuation句読点を削除します
remove_html_tagsスクレイピングしたデータから HTML マークアップを削除します
remove_urls自由記述フィールドから URL を削除します
remove_digitsテキストから数字を削除します
remove_emojis絵文字を削除します
fix_mojibakeUTF-8/Latin-1 の一般的な文字化けを修正します
normalize_line_endings\r\n および \r を \n に正規化します
extract_numbers混在するテキストから数値を抽出します
pad_left:N / pad_right:N固定幅になるように埋めます(口座番号、ID)
電話番号変換(5 種類)
変換処理内容
phone_e164任意の形式 -> +15550123456
phone_national任意の形式 -> (555) 012-3456
phone_digits数字のみを残します
phone_validate無効な番号にフラグを付けます
phone_country_code国番号を抽出します
氏名変換(8 種類)
変換処理内容
split_name"John Smith" -> first: "John", last: "Smith"
split_name_reverse"Smith, John" -> first: "John", last: "Smith"
strip_titles / strip_suffixesMr.、Mrs.、Dr.、MD、PhD などを削除します
name_proper"mcdonald" -> "McDonald"、"o'brien" -> "O'Brien"
initial_expandイニシャルを含む氏名に確認用のフラグを付けます
nickname_standardize"Bob" -> "Robert"、"Bill" -> "William"
merge_namefirst_name と last_name を結合して full_name にします
住所変換(8 種類)
変換処理内容
address_standardize"Street" -> "St"、"Avenue" -> "Ave"
address_expand"St" -> "Street"、"Ave" -> "Avenue"
state_abbreviate / state_expand"Pennsylvania" <-> "PA"
zip_normalizeゼロ埋めを行い、+4 を削除して、形式を検証します
split_address1 行の住所を street、city、state、zip に分割します
country_standardize"United States" / "USA" -> "US"(ISO 3166)
unit_normalize"Apt" / "Apartment" / "#" -> "Unit"
日付変換(13)
変換説明
date_iso8601任意の形式 -> 2024-03-15
datetime_iso8601任意の形式 -> 2024-03-15T15:30:00
date_us / date_eu地域別形式で出力
date_parse自動検出し、ISO 8601 に正規化
age_from_dob生年月日 -> 年齢
extract_year / extract_month / extract_day日付を要素に分解
extract_quarter日付 -> Q1/Q2/Q3/Q4
extract_day_of_week日付 -> Monday、Tuesday など
date_shift日数を加算/減算(匿名化)
date_validate無効な日付をブール値で判定
カテゴリ変換(6)
変換説明
category_auto_correctあいまい検索でスペルミスを正規値に照合
category_standardizeバリエーションを正規値にマッピング
category_from_fileCSV/YAML ファイルからマッピングを読み込み
boolean_normalize"Yes"/"Y"/"1"/"True" -> true
gender_standardize"Male"/"M"/"Female"/"F" -> M/F
null_standardize"N/A"/"NULL"/"none" -> null
数値変換(9)
変換説明
currency_strip"$1,234.56" -> 1234.56
percentage_normalize"85%" -> 0.85
round:N小数点以下 N 桁に丸める
clamp値を最小/最大範囲内に制限
to_integer文字列を int に解析し、小数部を切り捨てる
abs_value絶対値
fill_zeronull を 0 に置換
comma_decimal欧州形式 "1.234,56" -> 1234.56
scientific_to_decimal"1.5e3" -> 1500.0
メール変換(4)
変換説明
email_lowercase小文字に正規化
email_normalize+タグを削除し、Gmail のドットを削除して小文字化
email_extract_domain[email protected] -> example.com
email_validate無効なメール形式を判定
識別子変換(3)
変換説明
ssn_formatXXX-XX-XXXX に正規化
ssn_mask***-**-1234 にマスキング
ein_formatXX-XXXXXXX に正規化
URL 変換(2)
変換説明
url_normalizeドメインを小文字にし、スキームを補完して、末尾のスラッシュを削除
url_extract_domainURL からドメインを抽出

特別なモード

厳格モード

変換エラーが発生した場合、直ちに失敗します。CI や本番環境のパイプラインで便利です。

goldenflow transform data.csv --strict

変換が失敗した場合、コード 1 で終了し、最初の 5 件のエラーを出力します。

LLM モード

LLM を使用してカテゴリの修正を強化し、あいまい検索で見つからないエッジケースに対応します。

goldenflow transform data.csv --llm

環境に OPENAI_API_KEY または ANTHROPIC_API_KEY が必要です。標準の変換に適切にフォールバックします。

自動修正

category_auto_correct はあいまい検索を使用して、カテゴリ値のスペルミスを自動的に修正します。誤検出を避けるため、カーディナリティの高い列(ユニーク値が 10% を超える列)では抑制されます。

"actve" -> "active"
"Pennsylvnia" -> "Pennsylvania"
"Unted States" -> "United States"

YAML 設定

繰り返し実行するパイプライン向け:

# goldenflow.yaml
source: customers.csv
output: customers_clean.csv

transforms:
  - column: name
    ops: [strip, title_case]
  - column: email
    ops: [lowercase, strip]
  - column: phone
    ops: [phone_e164]
  - column: state
    ops: [state_abbreviate]
  - column: signup_date
    ops: [date_iso8601]

renames:
  email_address: email
  phone_number: phone

drop: [internal_id, temp_notes]

dedup:
  columns: [email]
  keep: first
goldenflow transform customers.csv -c goldenflow.yaml

データから設定を自動生成します:

goldenflow learn data.csv -o config.yaml

Python API

import goldenflow

# Zero-config
result = goldenflow.transform_file("messy_data.csv")
print(result.df)          # Clean Polars DataFrame
print(result.manifest)    # Audit trail

# With config
from goldenflow import GoldenFlowConfig, TransformSpec, TransformEngine

config = GoldenFlowConfig(
    transforms=[
        TransformSpec(column="phone", ops=["phone_e164"]),
        TransformSpec(column="date", ops=["date_iso8601"]),
    ]
)
engine = TransformEngine(config=config)
result = engine.transform_df(df)
Jupyter Notebook のサポート

TransformResult、Manifest、DatasetProfile はすべて _repr_html_() を備えており、Jupyter でリッチな HTML テーブルとして自動的にレンダリングされます。

import goldenflow

result = goldenflow.transform_file("messy_data.csv")
result           # renders as HTML table in Jupyter
result.manifest  # renders transform audit trail

TypeScript / JavaScript

GoldenFlow には、機能が完全に同等な TypeScript 版があります。同じ 83 個の変換、同じエンジン、同じ設定形式を備えています。コアは エッジセーフ(ブラウザー、Cloudflare Workers、Vercel Edge で実行可能)で、ファイル I/O と CLI 用の Node レイヤーを備えています。

インストール
npm install goldenflow
CLI
npx goldenflow-js transform data.csv              # Zero-config
npx goldenflow-js transform data.csv -c config.yaml  # With config
npx goldenflow-js profile data.csv                 # Column profiles
npx goldenflow-js learn data.csv -o config.yaml    # Generate config
npx goldenflow-js diff before.csv after.csv        # Compare files
npx goldenflow-js map -s source.csv -t target.csv  # Schema mapping
npx goldenflow-js stream large.csv --chunk-size 50000  # Streaming
npx goldenflow-js demo                             # Generate sample data
npx goldenflow-js history                          # Show recent runs
TypeScript API
import { TransformEngine, makeConfig } from "goldenflow";

// Zero-config — auto-detect and fix
const engine = new TransformEngine();
const result = engine.transformDf([
  { name: "  John Smith  ", email: "[email protected]", phone: "(555) 123-4567" },
  { name: "DR. JANE DOE", email: "  [email protected]  ", phone: "555.987.6543" },
]);

console.log(result.rows);
// [
//   { name: "John Smith", email: "[email protected]", phone: "+15551234567" },
//   { name: "Jane Doe", email: "[email protected]", phone: "+15559876543" },
// ]
console.log(result.manifest.records.length); // transforms applied
// Configured — explicit transforms per column
const engine = new TransformEngine({
  transforms: [
    { column: "phone", ops: ["phone_e164"] },
    { column: "email", ops: ["strip", "email_normalize"] },
    { column: "name", ops: ["strip", "title_case"] },
    { column: "state", ops: ["state_abbreviate"] },
    { column: "price", ops: ["currency_strip"] },
    { column: "signup_date", ops: ["date_iso8601"] },
  ],
  renames: { email_address: "email" },
  drop: ["internal_id"],
  dedup: { columns: ["email"], keep: "first" },
});
const result = engine.transformDf(rows);
// Schema mapping
import { SchemaMapper } from "goldenflow";

const mapper = new SchemaMapper();
const mappings = mapper.map(
  [{ fname: "John", lname: "Smith", email_address: "[email protected]" }],
  [{ first_name: "", last_name: "", email: "" }],
);
// [{ source: "fname", target: "first_name", confidence: 0.95 }, ...]
// Streaming large datasets
import { StreamProcessor } from "goldenflow";

const processor = new StreamProcessor({ transforms: [{ column: "name", ops: ["strip"] }] });
for (const result of processor.streamRows(largeDataset, 10_000)) {
  await writeChunk(result.rows);
}
// Profiling
import { profileDataframe } from "goldenflow";

const profile = profileDataframe(rows, "customers.csv");
for (const col of profile.columns) {
  console.log(`${col.name}: ${col.inferredType}, ${col.nullCount} nulls, ${col.uniqueCount} unique`);
}
// Edge-safe import (browsers, Workers, Edge Runtime)
import { TransformEngine } from "goldenflow/core";

// Node-only import (includes file I/O, MCP, CLI)
import { readFile, TransformEngine } from "goldenflow/node";
MCP サーバー(TypeScript)
import { TOOL_DEFINITIONS, handleTool } from "goldenflow/node";

// TOOL_DEFINITIONS: 10 MCP tools for Claude Desktop
// handleTool("transform", { path: "data.csv" }) → JSON string
REST API(TypeScript)
import { runServer } from "goldenflow/node";
runServer(8000); // Starts HTTP server with /health, /transforms, /transform

公開 API(34 個のエクスポート)

from goldenflow import (
    # Core engine
    TransformEngine, TransformResult,
    # Config
    GoldenFlowConfig, TransformSpec, SplitSpec, FilterSpec, DedupSpec, MappingSpec,
    # Convenience
    transform_file, transform_df,
    # Manifest
    Manifest, TransformRecord, TransformError,
    # Profiler
    DatasetProfile, ColumnProfile,
    # Selector & differ
    select_transforms, diff_dataframes, DiffResult,
    # Transform registry
    TransformInfo, register_transform, get_transform, list_transforms, parse_transform_name,
    # Mapping
    SchemaMapper, ColumnMapping,
    # Config helpers
    load_config, save_config, merge_configs, learn_config,
    # Domains
    DomainPack, load_domain,
    # Connectors
    read_file, write_file,
)

インテグレーション

REST API
goldenflow serve --host 0.0.0.0 --port 8000

CSV データを POST すると、変換済みの CSV が返されます。FastAPI で構築されています。

MCP サーバー
goldenflow mcp-serve

GoldenFlow を Claude Desktop 用の MCP ツールとして公開します。Claude Desktop の設定で構成してください。

TUI
goldenflow interactive data.csv

Textual で構築された、機能豊富なターミナル UI です。プロファイルの閲覧、変換の適用、結果のプレビューができます。

リモート MCP サーバー

GoldenFlow は Smithery でホスト型 MCP サーバーとして利用できます。インストールせずに、あらゆる MCP クライアントから接続できます。

Claude Desktop / Claude Code:

{
  "mcpServers": {
    "goldenflow": {
      "url": "https://goldenflow-mcp-production.up.railway.app/mcp/"
    }
  }
}

ローカルサーバー:

pip install goldenflow[mcp]
goldenflow mcp-serve

利用可能なツールは 10 個です。ファイルの変換、スキーマの自動マッピング、列のプロファイリング、設定の生成、変換前後の差分表示、ドメインパックの適用ができます。


Golden Suite の一部

ツール目的PythonTypeScript
GoldenCheckデータ品質の検証とプロファイリングpip install goldenchecknpm install goldencheck
GoldenFlowデータの変換と標準化pip install goldenflownpm install goldenflow
GoldenMatchレコードの重複排除と照合pip install goldenmatch—
GoldenPipeパイプライン全体のオーケストレーションpip install goldenpipe—
Raw Data
   |
   v
+--------------+
|  GoldenCheck |  <- Discover quality issues
|  goldencheck |
|  scan data   |
+------+-------+
       | findings
       v
+--------------+
|  GoldenFlow  |  <- Fix issues, standardize, reshape
|  goldenflow  |
|  transform   |
+------+-------+
       | clean data
       v
+--------------+
|  GoldenMatch |  <- Deduplicate, match, create golden records
|  goldenmatch |
|  dedupe      |
+------+-------+
       | golden records
       v
   Clean, deduplicated,
   production-ready data

これらを連携させます:

goldencheck scan data.csv | goldenflow transform --from-findings | goldenmatch dedupe

パフォーマンス

Rust ベースの DataFrame ライブラリ、Polars を基盤としています。変換にはハイブリッド方式を採用しています。単純な変換(strip、lowercase)では Polars のネイティブ式を Rust エンジンで実行し、複雑な変換(電話番号の解析、日付の解析)では map_batches を介して最適化された Python を使用します。


ベンチマーク

GoldenFlow は、DQBench の変換ベンチマークで、3 つのティアすべて(顧客データベース、eコマース、医療保険請求)において 100/100 を達成しています。

pip install dqbench
dqbench run goldenflow

GoldenFlow を選ぶ理由

GoldenFlowpandas スクリプトGreat ExpectationsdbtDataprep.Clean
設定不要の変換はい(自動検出)いいえいいえ(検証のみ)いいえ(SQL 変換)一部対応
76 個の組み込み変換(11 カテゴリ)はい手動いいえ(バリデーターであり、変換ツールではありません)SQL 経由約 30 個のクリーナー
ドメインパック(医療、金融など)5 個を組み込みいいえいいえいいえいいえ
スキーママッピング自動+手動手動いいえref/source 経由いいえ
監査証跡(マニフェスト)JSON で自動生成手動いいえログ経由いいえ
ストリーミング/大容量ファイル組み込み手動でチャンク処理いいえはい(データウェアハウス)いいえ
MCP サーバーはいいいえいいえいいえいいえ
Polars ネイティブはいいいえ(pandas)いいえ(pandas/Spark)いいえ(SQL)いいえ(pandas)
DQBench 変換スコア100/100該当なし該当なし該当なし該当なし

GoldenFlow は、検証と照合の間にある変換ステップに特化して構築されており、汎用 ETL ツールではありません。乱雑なデータを、クリーンで標準化されたデータへ自動的に変換します。


エラー処理

GoldenFlow は CLI の境界でエラーを捕捉し、アクションにつながるわかりやすいメッセージを表示します。生のスタックトレースは表示されません。個々の変換エラーは実行をクラッシュさせず、マニフェストに記録されます。この動作を変更するには --strict を使用してください。


プログレスバー

時間のかかる操作(ストリーミング、監視モード、スケジューリング)では、バッチ数、処理済み行数、推定完了時間を示す Rich のプログレススピナーが表示されます。


GitHub: github.com/benzsevern/goldenflow 作者: Ben Severn ライセンス: MIT Python: 3.11+ | Node.js: 20+ | npm: goldenflow | PyPI: goldenflow

コメント

MCP は初めてですか?

プロトコルの概要から最初のサーバーの導入まで、よくある疑問にまとめて答えます。

AI アプリケーションが外部のツールやデータソースに統一的な方法で接続するためのオープンなプロトコルです。クライアントはモデルとの対話を担い、MCP サーバーはツール・リソース・プロンプトテンプレートを提供します。標準メッセージでやり取りするため、1 つのサーバーを複数のクライアントで再利用できます。