はじめに 前回は、これまで説明してきたアルゴリズムの性能を定量的に見積り、比較しました。今回は、これらの性能見積りを用いて行うデータ処理(問い合わせ)の最適化方法について説明します。 データ処理(問い合わせ)の最適化 第4回で述べたように、HadoopのSQL処理系であるHiveをはじめとし、ImpalaやPrestoなどの宣言型言語を用いるデータ処理系においては、利用者は何を(What)処理してほしいかを処理系に指示するのみであり、どのように(How)処理をしてほしいかは指定しません。すなわち、当該処理系においては、どのように処理をするかは処理系自体が決める必要があり、与えられた問い合わせ(クエリ)を最も良いと思われる方法で処理します。このように、問い合わせにおいて最良と思われるデータ処理の方法を見つけることを「(問い合わせ)最適化」と呼びます。 最適化においては、問い合わせを実行す