4日間のNetezza研修に行ってきたのでNetezzaのアーキテクチャについて書いてみる。 Netezzaの全体像はこんな感じです。 SMP hostというのがクエリを受け付けてparseして最適化してプランを作ります。SMP hostのDiskはDRBDで二重化されています。 プランはSnippetという単位になりそれが各SPUにばらまかれて並列処理されます。 各SPUでC++コードの生成、コンパイル、実行という処理を行いますが、2回目以降はコンパイル済みのオブジェクトコードがキャッシュされるので早くなります。 SPUはSnippet processing unitの略でCPU, FPGA, Memoryを持ちます。 FPGAで解凍処理や行、列の絞り込みを行うことによって性能向上をはかります。 CPUの仕事を減らしてハード側でなるべく処理させるという感じでしょうか。 テーブルを作るとき
![NetezzaとかRedshiftとかPrestoとかその辺の話 - wyukawa's diary](https://cdn-ak-scissors.b.st-hatena.com/image/square/8974ca125494d3c37e71a1bd6a06b9ef91d7d5a2/height=288;version=1;width=512/https%3A%2F%2Fcdn-ak.f.st-hatena.com%2Fimages%2Ffotolife%2Fw%2Fwyukawa%2F20150528%2F20150528121832.png)