R2 SQL、JOINとサブクエリに対応

248文字
1分
編集

Cloudflare の R2 SQL が、Iceberg テーブルを跨ぐ JOIN とサブクエリ、複数テーブルの CTE に対応した。R2 Data Catalog 上のデータを外部 DWH に移さず、複数データセットを結合して集計したい利用者向けである。

  • JOIN は INNER JOIN / LEFT JOIN / RIGHT JOIN / FULL OUTER JOIN / CROSS JOIN と、カンマ区切り FROMWHERE 条件を置く暗黙 join をサポートする
  • サブクエリは IN / NOT INEXISTS / NOT EXISTSSELECT / WHERE / HAVING のスカラサブクエリ、FROM 内の derived table をサポートする
  • WITH 句の CTE で複数テーブルを参照でき、CTE 同士や通常テーブルとの JOIN も行える

制約と運用上の注意として、NOT IN は nullable な列に対してはサポートされず NOT EXISTS が推奨される。JOIN を含む複数テーブルクエリは中間結果が大きいほど遅くなりやすいため、WHERE での絞り込みや LIMITSELECT * を避ける運用が推奨されている。

#参考文献