**Quack‑Cluster:**  
「クワック・クラスタ―:DuckDB と Ray を利用したサーバーレス型分散 SQL クエリエンジン」

2026/01/27 9:24

**Quack‑Cluster:** 「クワック・クラスタ―:DuckDB と Ray を利用したサーバーレス型分散 SQL クエリエンジン」

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:


Quack‑Cluster – オブジェクトストレージ上のサーバーレス分散SQL

Quack‑Cluster は、Python、Ray、および DuckDB を使用して AWS S3 や Google Cloud Storage などのクラウドオブジェクトストレージ上で直接実行される高性能なサーバーレス分散 SQL クエリエンジンです。
Ray クラスター内の各ワーカーは、埋め込み DuckDB インスタンスをホストし、データのパーティションを並列に処理します。FastAPI と SQLGlot で構築された Coordinator API は、受信した SQL を解析し、ワイルドカード(例:

s3://bucket/*.parquet
)を介して対象ファイルを検出し、実行計画をワーカーへ分散させ、結果は Apache Arrow を通じて効率的にメモリ内転送されます。

このエンジンは DuckDB の方言の豊富なサブセットをサポートしています:SELECT、FROM、WHERE、GROUP BY、ORDER BY、LIMIT;集計関数 COUNT()、SUM()、AVG()、MIN()、MAX();結合(INNER、LEFT、FULL OUTER);副問い合わせ、CTE、ウィンドウ関数、および高度な SELECT 構文。Parquet、CSV などのファイルは、オブジェクトストレージまたはローカルファイルシステムから ETL を一切行わずにネイティブに読み取ります。

クイックスタート

git clone https://github.com/your-username/quack-cluster.git
cd quack-cluster
make data            # サンプル Parquet データを生成
make up scale=3      # Ray ヘッドノード + 3 ワーカーを起動

make down
でクラスターを停止します。他の便利なコマンドには
make logs
make build
make test
、および
make clean
が含まれます。

製品ごとの売上合計を集計するサンプルクエリは次のようになります:

SELECT product, SUM(sales) AS total_sales
FROM "data_part_*.parquet"
GROUP BY product
ORDER BY product;

API は提供された Postman コレクション(

QuackCluster_API_Tests.json
)と環境ファイルでテストできます。

ロードマップ

今後のマイルストーンには、Iceberg や Delta Lake などのメタデータカタログとの統合、およびクライアントコードから直接 Quack‑Cluster の機能を公開する専用 Python SDK の開発が含まれます。ETL パイプラインの必要性を排除することで、Quack‑Cluster はインフラコストを削減し、データエンジニア、分析者、およびスケーラブルでコスト効率の高いクラウド分析を求める企業にとって解析ワークフローを簡素化します。

プロジェクト状況

Quack‑Cluster は MIT ライセンスのオープンソースプロジェクトで、GitHub 上でホスティングされています。AI ツールはドキュメント作成を支援しますが、すべてのコア開発、デバッグ、およびテストは人間によって行われます。


本文

🦆 クアック・クラスタ

DuckDB と Ray を組み合わせたサーバーレス分散 SQL クエリエンジン

クアック・クラスタは、オブジェクトストレージ(例:AWS S3 や Google Cloud Storage)に保存されたデータに対して、複雑な SQL クエリを直接実行できる高性能かつサーバーレスの分散 SQL エンジンです。Python、Ray 分散計算フレームワーク、および超高速 DuckDB アナリティクスデータベースを組み合わせており、大規模ビッグデータシステムに代わる軽量で理想的な選択肢となります。


主な特徴

  • サーバーレス & 分散 – Ray クラスター上でスケーラブルに SQL を実行し、サーバーインフラを管理する必要はありません。
  • 高速 SQL 処理 – DuckDB のメモリ内カラム指向ベクトル化エンジンと Apache Arrow を活用した極めて高速な分析が可能です。
  • データの所在でクエリ実行 – Parquet、CSV などをオブジェクトストレージやローカルファイルシステムから直接読み込み、ETL は不要です。
  • Python ネイティブ統合 – Python で構築されており、データサイエンス・エンジニアリング・ML のワークフローにシームレスに組み込めます。
  • オープンソーススタック – FastAPI、Ray、DuckDB、SQLGlot などを採用しています。

🏛️ 構成図

ユーザー → コーディネーター (FastAPI + SQLGlot) → Ray クラスター
                                         ↘︎
                          ┌───────────────────────┐
                          │ ワーカー 1              │
                          │ (Ray Actor + DuckDB)   │
                          └────────▲────────────────┘
                                   │
                          ┌────────▼────────────────┐
                          │ ワーカー N              │
                          │ (Ray Actor + DuckDB)   │
                          └────────▲────────────────┘
                                   │
                        データソース (S3 / GCS / ローカル)
  1. クライアント が標準的な SQL クエリをコーディネーターの API エンドポイントへ送信。
  2. コーディネーターがクエリを解析し、対象ファイル(例:
    s3://my-bucket/data/*.parquet
    )を特定して分散実行計画を構築。
  3. Ray がタスクを複数のワーカーへディスパッチしてオーケストレーション。
  4. ワーカー は自身のデータサブセットに対し埋め込み DuckDB インスタンスで処理。
  5. 部分結果はコーディネーターで集約され、クライアントへ返却。

この設計により、大量ファイル集合上での SQL クエリを大規模並列処理(MPP)で実行できます。


🚀 始め方

前提条件

  • Docker
  • make
    (Linux/macOS には標準装備、Windows は WSL 経由で利用可)

インストール & 起動

# 1. リポジトリをクローン
git clone https://github.com/your-username/quack-cluster.git
cd quack-cluster

# 2. サンプルデータ生成(./data に Parquet ファイル作成)
make data

# 3. クラスター構築・起動
#    Ray のヘッドノード + N 個のワーカーノードを起動
make up scale=2

クラスターは稼働中です!
Ray ダッシュボードは http://localhost:8265 で確認できます。


👨‍🏫 チュートリアル:分散 SQL クエリの実行

任意の HTTP クライアント(curl、Postman 等)を使い、

http://localhost:8000/query
にクエリを送信します。

curl -X POST \
     http://localhost:8000/query \
     -H 'Content-Type: application/json' \
     -d '{
           "sql": "SELECT product, SUM(sales) AS total_sales FROM \"data_part_*.parquet\" GROUP BY product ORDER BY product"
         }'

期待される出力

{
  "result": [
    {"product":"A","total_sales":420.0},
    {"product":"B","total_sales":400.0},
    {"product":"C","total_sales":300.0}
  ]
}

🚀 Postman でテスト

  1. コレクションと環境をインポート

    • documentation/postman_collection/QuackCluster_API_Tests.json
    • documentation/postman_collection/QuackCluster_postman_environment.json
  2. 環境を有効化 – Postman で「Quack Cluster Environment」を選択。

  3. リクエスト送信 – ベース URL は

    http://127.0.0.1:8000
    に設定されています。


💡 サポートされる SQL 機能

カテゴリ容易
基本クエリ
SELECT
,
FROM
,
WHERE
,
GROUP BY
,
ORDER BY
,
LIMIT
集約関数
COUNT()
,
SUM()
,
AVG()
,
MIN()
,
MAX()
分散結合
INNER JOIN
,
LEFT JOIN
,
FULL OUTER JOIN
(ファイルセット間)
高度な SQLサブクエリ、CTE (
WITH
)、ウィンドウ関数 (
OVER (PARTITION BY ...)
)
ファイルシステム関数グロブパターン (
"s3://my-data/2025/**/*.parquet"
)、
SELECT * EXCLUDE (...)
SELECT COLUMNS('<regex>')

🛠️ 開発・管理コマンド

コマンド説明
make up scale=N
N 個のワーカーでクラスターを起動。
make down
実行中コンテナを安全に停止・削除。
make logs
すべてのサービスログを tail 表示。
make build
コード変更後に Docker イメージ再構築。
make test
ray‑head コンテナ内で pytest スイート実行。
make clean
注意 – コンテナ停止とすべてのデータボリューム削除。

🗺️ プロジェクトロードマップ

  • ✅ 分散 JOIN 機能
  • ✅ ウィンドウ関数(OVER, PARTITION BY)
  • 🔜 メタデータカタログ統合(Apache Iceberg、Delta Lake)
  • 🔜 開発者体験を向上させる専用 Python SDK

🤝 貢献

ご協力大歓迎です!Issue を立てるか Pull Request を送信してください。すべてのコア設計決定とテストは人間によってレビューされ、品質が保証されています。


🤖 AI 主導開発

本プロジェクトでは AI ツールを活用して開発速度とドキュメント作成を加速していますが、重要なアーキテクチャ設計・デバッグ・最終テストはすべて人間によって行われます。


📄 ライセンス

MIT © 2026 Quack‑Cluster。詳細は LICENSE ファイルをご覧ください。

同じ日のほかのニュース

一覧に戻る →

2026/01/31 9:51

**Show HN:** 私は自分の中国語(普通話)の声調を直すため、9Mパラメータの音声モデルを訓練しました。

## Japanese Translation: > **概要:** > AISHELL‑1 と Primewords から約300時間分の文字起こし済み中国語音声を用い、SpecAugment と4台の RTX 4090 GPU を使用して、約9 Mパラメータのコンフォーマーモデル(Conformer)を訓練しました。ネットワークは40 msごとにトークン確率を出力し、Viterbi アルゴリズムでピンイン音調トークン列(各音節+音調がユニークなトークン;中性音調はトーン5へマッピング)に沿ってアラインメントを強制します。語彙には1,254個のトークンと `<unk>`、`<blank>` が含まれます。 > このモデルでは Token Error Rate(TER)が約 5.3 %、音調精度が約 98.3 %です。INT8 量子化によりサイズを約37 MB から約11 MB に縮小し、TER は +0.0003 の増加のみで済みました。先頭の無音によるアラインメントミスを修正するため、 `<blank>` 確率が0.7 を超えるフレームは採点前に除外しました。 > 最終的な量子化モデル(約13 MB のダウンロード)は ONNX Runtime Web 経由でブラウザ上で完全に実行され、リアルタイムの発音フィードバックを可能にします。今後は Common Voice などの会話データセットを取り入れ、カジュアルまたは子供の話し言葉(通常より速く変動が大きい)に対する頑健性を向上させる予定です。 **短縮版(すべてのポイントを網羅):** > **概要:** > AISHELL‑1/Primewords から約300時間分の中国語音声で、SpecAugment と4× RTX 4090 を用いて9 Mパラメータのコンフォーマーを訓練しました。40 ms ごとにトークン確率を出力し、ピンイン‑音調語彙(1,254トークン+`<unk>`、`<blank>`)で Viterbi アラインメントを行います。TER は約 5.3 %、音調精度は約 98.3 %です。INT8 量子化によりモデルサイズが約11 MB に縮小され、TER は +0.0003 の増加のみでした。先頭無音のバグは、高い `<blank>` 確率(閾値0.7)を持つフレームを除外することで修正しました。13 MB の ONNX Runtime Web バージョンはブラウザ内で完全に動作し、即時発音フィードバックを提供します。将来的には会話データを追加してドメインシフトへの対処を図ります。

2026/01/31 5:40

ペアウェブ:WebTorrent を利用した分散型ウェブサイトホスティング

## 日本語訳: PeerWebは、WebTorrent技術を利用したピアツーピア(P2P)ネットワーク上で静的ウェブサイトを無料かつ検閲耐性のある形でホストできるサービスです。サイトはトレントハッシュ経由で配布され、少なくとも1人のユーザーがブラウザタブまたはデスクトップクライアントを開いている限りオンラインに留まります。 **動作原理:** - ユーザーはインターフェースにファイルをドラッグ&ドロップするだけで、シンプルなHTML/CSS/JSプロジェクトをアップロードできます。各サイトにはユニークなPeerWebリンクが付与され、どこからでもアクセス可能です。 - サイトは `index.html` ファイルを必ず含み、相対パスのみを使用し、静的コンテンツで構成されている必要があります。 - キャッシュ前に PeerWeb は DOMPurify で全ファイルをサニタイズし、XSS 攻撃から保護します。 - キャッシュされたサイトは IndexedDB に保存され即座に再読み込みが可能です。キャッシュは7日間の非アクティブ後に自動的にクリアされます。 **セキュリティとパフォーマンス:** - コンテンツはサンドボックス化された iframe 内でレンダリングされ、リソース検証によって正当な資産のみが表示されます。 - 開発者はデバッグモード(`&debug=true`)を有効にして詳細な進行状況とリアルタイムメトリクスを確認できます。 **使用例:** デモリンクではテストページ、SomaFM ラジオ、チェスゲーム、およびテキストエディタアプリが紹介されています。 多くのピアにコンテンツを分散させることで、PeerWeb は従来のホスティング費用なしでサイトを利用可能にし、キャッシュによる高速ロードとマルウェアからの保護を提供しつつ、検閲にも耐えます。

2026/01/31 8:47

**Stonebraker氏のCAP定理とデータベースに関する論考**

## 日本語訳: **要約:** マイク・ストーンブレーカー氏は、CACMブログ記事「データベースシステムにおけるエラー、最終的な一貫性、およびCAP定理」で、CAP定理が最終的一致性を強制するという広く受け入れられているNoSQLの見解に挑戦しています。彼は、多くのデータベース障害はネットワーク分断ではなく、アプリケーション、管理、実装上のバグから生じており、実際にはパケット損失や設定エラーなど他のネットワーキング欠陥と比べても稀であると主張しています。ストーンブレーカー氏は、2ノード冗長スキームが大規模では不十分であり、業界が最終的一致性に依存することで実際の問題を隠してしまう可能性があると指摘しています。 彼はAmazon SimpleDB が最近完全一致性へ移行したことを、高いスケールでも厳密な正確性を保証できる証拠として挙げ、実用的な緩和策として「遅延削除」(削除マークを付けてからガベージコレクションを遅らせる)を提案しています。ストーンブレーカー氏は完全一致性を早期に放棄すると微妙なバグが発生し、運用リスクが増大する可能性があると警告しています。 この記事はNoSQLコミュニティに対し、多くのワークロードで最終的一致性が適切かどうかを再検討し、強い一致性が大規模でも達成できることを示唆しています。

**Quack‑Cluster:** 「クワック・クラスタ―:DuckDB と Ray を利用したサーバーレス型分散 SQL クエリエンジン」 | そっか~ニュース