Apache HAWQを使用していて、データを処理しようとしています。私は1つのマスターノードと2つのhawqスレーブを持っています。Apache HAWQを使用して、スレーブ上の分散ファイルの場所を知ることができますか?
私はテーブルを作成し、データを挿入し、私が挿入したデータをpostgreSQLを使って特定しました。私はそのデータが主に奴隷に配られていると思った。
以下のコマンドを実行すると、複数のgp_segment_idが表示され、複数のスレーブを使用しているような印象を与えます。
my_db=# select gp_segment_id, count(*) from retail_demo.order_lineitems_hawq GROUP BY gp_segment_id;
gp_segment_id | count
---------------+--------
3 | 170682
4 | 170680
2 | 170696
1 | 341397
0 | 170703
(5 rows)
ここで、私は本当にスレーブノードに自分のデータを配布したいと思っています。しかし、私はいくつかのブログを検索しましたが、私はそれを行う方法がわかりません。私はこれを見つけたhttps://discuss.pivotal.io/hc/en-us/articles/204072646-Pivotal-HAWQ-find-data-files-for-specific-tables、そして以下のように指示されたコマンドに従った。
SELECT * FROM pg_filespace_entry WHERE fselocation LIKE '%gpseg0';
ステートメントを実行すると、空のテーブルが私に返され、少し混乱させてしまいます。
私がしたいのは、スレーブノード上の分散データの位置を特定することです。ただし、クエリ文(select gp_segment_id, count(*) from retail_demo.order_lineitems_hawq GROUP BY gp_segment_id;
)では、分散データの場所を特定するのに十分ではありませんでした。
また、gpセグメントの数はどこで指定できますか?クエリを実行するたびに、gp_segmentsの数は入力データサイズの数によって異なります。要約すると
、次のように私の質問は以下のとおりです。
1)はどこでスレーブノード上のHDFS上の分散されたデータの場所を見つけることができますか?もしそうでなければ、データがうまく配布されたと私は信じることができますか?
2)セグメント数を指定する方法はありますか?入力データのサイズにかかわらずセグメントの数が固定されるならば、HAWQシステムを理解する方がより良いでしょう。
任意の助けが理解されるであろう:D