R2 SQL、JOINとサブクエリに対応
Cloudflare の R2 SQL が、Iceberg テーブルを跨ぐ JOIN とサブクエリ、複数テーブルの CTE に対応した。R2 Data Catalog 上のデータを外部 DWH に移さず、複数データセットを結合して集計したい利用者向けである。
- JOIN は
INNER JOIN/LEFT JOIN/RIGHT JOIN/FULL OUTER JOIN/CROSS JOINと、カンマ区切りFROMにWHERE条件を置く暗黙 join をサポートする - サブクエリは
IN/NOT IN、EXISTS/NOT EXISTS、SELECT/WHERE/HAVINGのスカラサブクエリ、FROM内の derived table をサポートする WITH句の CTE で複数テーブルを参照でき、CTE 同士や通常テーブルとの JOIN も行える
制約と運用上の注意として、NOT IN は nullable な列に対してはサポートされず NOT EXISTS が推奨される。JOIN を含む複数テーブルクエリは中間結果が大きいほど遅くなりやすいため、WHERE での絞り込みや LIMIT、SELECT * を避ける運用が推奨されている。