はじめに 今回は、ImpalaにおけるI/Oの高速化技法について説明します。 前回説明したように、Impalaの実行エンジンは可能な限りメモリ上で処理をすることでアドホッククエリのレイテンシを下げ、スループットを向上させる、という設計方針で開発されています。 しかし、データはストレージ(二次記憶装置)に格納されているため、当然、ストレージへのI/Oを回避することはできません。また、Impalaは実行時に十分なメモリを確保するべく、データをメモリ上に保持(キャッシュ)しないため、クエリを実行するたびにデータをストレージから読み出すことを前提として設計されています[1]。 今回は、このようなユースケースを考慮しつつ、高速・高効率なアドホッククエリを実行するためのI/O処理方式とデータレイアウトについて解説します。 Short-Circuit Local ReadsによるI/Oの高効率化 Sh