2MASS Catalog Server Kit

大カタログの登録


ページ一覧:
ホーム / 大カタログの登録 / 小カタログの登録 / テーブルカラム情報 / HDDのコピーサービス


カタログ登録の前に

カタログを登録する前に, インストール手順 に従って,OS と PostgreSQL のセットアップを行なってください.

2MASS PSC の登録

このページでは, 2MASS PSC の登録手順を示します. 他の大カタログも同様の手順でインストールできます. その場合,「twomass」を他に置き換えてください.

データファイルのダウンロード

必要となるデータファイルをダウンロードし, 解凍しておいてください. データファイルの置き場所はどこでもかまいません.

次に wget を使って 2MASS PSC に必要なデータファイルすべてを 取得する例を示します.

$ mkdir twomass_data
$ cd twomass_data
$ wget -nd -r http://darts.jaxa.jp/pub/ir/2masskit/v2/twomass/

データファイルのシンボリックリンクの作成

2MASS Kitを展開したディレクトリの「twomass」ディレクトリに入り, ダウンロードしたデータファイルに対して, 下記のようにシンボリックリンクしておきます.

$ cd twomass
$ ln -s (どこか)/twomass_data/*.db.txt .

SQLファイル生成

Makefile をエディタで開きます.

$ vi Makefile

2MASS Kit では,2種類のテーブル「メインテーブル」「位置検索専用テーブル」 を作成します. 基本的に位置検索についてはストアドファンクション経由で 「位置検索専用テーブル」を使って行なわれます. その他の検索は,平凡な SELECT…FROM…WHERE… 構文により 「メインテーブル」で検索を行ないます. ただし,座標を条件に含まずいきなりフラックス等で検索する場合, インデックスを作成したとしてもその分布の中心付近では 「LIMIT」句で数千件程度に制限をつけないと 現実的な速度では検索できないと考えてください.

Makefile の INDICES で,「メインテーブル」の どのカラムにインデックスを作成するかを指定できます. 2MASS PSCの場合のデフォルトでは,j_m,h_m,k_m となっており, j,h,k のフラックスに対してインデックスを作成します. 必要に応じて,カラム名を追加してください. ただし,objid に関しては 指定しなくてもインデックスが作成されますので,追加しないようにしてください.

Makefile の準備ができたら make します.

$ make

以上で,SQLファイルが生成されました.

テーブルスペースの登録

UNIXの一般ユーザで,データベース "2MASS" に postgresロール(PostgreSQLのスーパーユーザ)でログインし, テーブルスペースを登録します.

$ psql -U postgres 2MASS
Password for user postgres: xxxxxx
psql (8.4.5)
Type "help" for help.

2MASS=# \i twomass_create_tablespace.sql 
CREATE TABLESPACE
CREATE TABLESPACE
CREATE TABLESPACE
CREATE TABLESPACE
CREATE TABLESPACE
CREATE TABLESPACE
2MASS=# \q

親テーブルの登録

UNIXの一般ユーザで,データベース "2MASS" に adminロールでログインし,テーブルを登録します.

$ psql -U admin 2MASS
Password for user admin: xxxxxx
psql (8.4.5)
Type "help" for help.

2MASS=> \i twomass_create_table.sql 
CREATE TABLE
CREATE TABLE

注意: これ以降,実行に非常に時間がかかるコマンドが含まれてきます. Adaptec RAID 2405 + S-ATA2 HDD ×2 (RAID1) を使用した場合の所要時間を書いてありますが, 環境によっては,それより数倍から10倍程度かかる事もあります.

メインテーブルへのデータ登録

続いて,メインテーブルのデータ登録とプライマリキーの作成を行ないます. 登録完了まで,数時間(5時間以上)かかります.

2MASS=> \i twomass_main_copy.sql 
SET
psql:twomass_main_copy.sql:xxxxxxxxx: NOTICE:  ALTER TABLE / ADD PRIMARY KEY will create implicit index "twomass_pkey" for table "twomass"
ALTER TABLE
SET

下記のようなメッセージが表示される事がありますが,問題ありません:

LOG:  checkpoints are occurring too frequently (7 seconds apart)
HINT:  Consider increasing the configuration parameter "checkpoint_segments".

もし,データ登録が3日ほどたっても終わらない場合, BIOSでのS-ATAインタフェースの設定に問題がある可能性があります. FAQ をご覧ください.

位置検索専用テーブルの作成

次のようにテーブルの作成・データ登録・インデックス作成を 行ないます. データ登録には約30分,インデックス作成には約80分かかります.

2MASS=> \i twomass_eqi_create_table.sql
2MASS=> \i twomass_eqi_copy.sql
2MASS=> \i twomass_eqi_create_index.sql

インデックス作成中に下記のメッセージが表示される事がありますが,問題ありません.

ERROR:  canceling autovacuum task
CONTEXT:  automatic analyze of table "xxxxxxxx"

2MASS用ストアドファンクションの登録

2MASS用ストアドファンクションを登録します.

2MASS=> \i twomass_create_function.sql

guestロールにテーブルへのアクセスを許可

2MASS=> \i twomass_main_grant.sql
2MASS=> \i twomass_eqi_grant.sql

メインテーブルのインデックス作成(任意)

座標以外を最優先の検索条件としたい場合には, メインテーブルにインデックスを作成してください. 標準設定の場合,完了まで数時間かかります.

2MASS=> \i twomass_main_create_index.sql

メインテーブルのインデックスは,後から追加する事もできます. MakefileのINDICESにカラム名を追加し,makeした後,上記と同様 「twomass_main_create_index.sql」を実行します. その場合,インデックス作成後に「VACUUM ANALYZE Twomass;」を 必ず実行してください.

バキューム

いよいよ最後のコマンドです. 次のコマンドの後,数時間待てば,検索ができるようになります. おつかれさまでした.

2MASS=> \i twomass_vacuum.sql

なお,VACUUM ANALYZE を引数無しで実行すると 「WARNING: skipping "pg_type" --- only superuser or database owner can vacuum it」 のようなメッセージがたくさん表示されると思いますが, 問題ありませんので無視してください.