ThingWorx モデルとデータの最良事例 > データ管理 > ランタイムデータのパーティション分割 > 古いパーティションを分離するスクリプトとスケジューラの使用
古いパーティションを分離するスクリプトとスケジューラの使用
既存のパーティションを分離すると、大きな value_stream テーブルをより効率的に管理するのに役立ちます。このプロセスは、コマンドライン操作とスケジューラを使用して実行できます。
大量のデータを含む value_stream テーブルでは、その結果としてテーブルスキャンが発生することにより、パージ操作にかなりの時間がかかり、サーバー全体の負荷が増加する可能性があります。パーティションのドロップ操作を使用すると、この問題に合理的に対処できます。
partition_value_stream_by_range_setting コマンドラインで value_stream テーブルをパーティション分割した後 (PostgreSQL での value_stream テーブルのパーティション分割)、detach_partitions_from_value_stream コマンドを使用すると、作成したパーティションをより簡単かつ迅速にドロップまたはアーカイブできます。
このプロセスは、パーティションのアーカイブまたはメンテナンス処理を管理するために使用するコマンドライン操作とスケジューラを通じて実行できます。
detach_partitions_from_value_stream という名前のスクリプトには、次のコマンドラインパラメータがあります。
パラメータ名
説明
デフォルト値
コメント
host
データベースホスト
必須
port
データベースポート
必須
database
value_stream テーブルが存在するデータベース名
必須
username
データベースのユーザー
必須
password
データベースのパスワード
必須
interval_to_retain
計算される保持間隔 = 現在時刻から 26 時間 (最大時差) を引き、さらに指定された interval_to_retain を引いた期間
必須
可能なフォーマット:
1h または hours
1d または 1day
1 month
1y または 1year
action
パーティションのドロップ操作またはアーカイブ操作
必須
可能な値:
‘drop’
‘archive’
value_stream_archive_name
アーカイブ済み値ストリームテーブル名
'value_stream_archive'
デフォルト名を変更する場合、次の名前は使用しないでください。
value_stream_part_0
value_stream_old
value_stream_tmp
または既存のテーブル名またはパーティション名
future_data_exists
オプション
no
可能な値:
yes または no
yes (オプション) に設定した場合、スクリプトは将来のデータのパーティション分割をサポートします
drop 操作を選択すると、interval_to_retain の期間より古い完全なパーティションは value_stream テーブルから分離され、ドロップされます。
archive 操作を選択した場合、interval_to_retain の期間より古い完全なパーティションは value_stream テーブルから分離され、value_stream_archive テーブル (または value_stream_archive_name 入力パラメータで設定された別のテーブル) に付加されます。
たとえば、interval_to_retain を 1h として選択すると、1 時間より古い完全なパーティションが分離され、操作パラメータに応じてドロップまたはアーカイブされます。
* 
リカバリのために、パーティション分割プロセスを開始する前に、データベースを複製またはバックアップします。
detach_partitions_from_value_stream コマンドラインを使用するには、以下の操作を行います。
1. detach_partitions_from_value_stream.sh スクリプトをダウンロードします。PTC サポートにダウンロード場所をリクエストします。
2. ThingWorx データベースに接続しているサーバーにスクリプトをコピーします。
3. コマンドラインを開き、上記のパラメータを使用して必要に応じてコマンドを実行します。
たとえば、./detach_partitions_from_value_stream.sh -host <localhost> -port <port> -database <database> -username <username> -password <password> -interval_to_retain '1h' -action 'archive' などです。
スケジューラの使用
Windows タスクスケジューラまたはその他の OS スケジューラを使用して、detach_partitions_from_value_stream sh スクリプトを実行できます (月ごとに実行する場合など)。
スケジューラで実行するために、別のスクリプトを記述することもできます。この追加のスクリプトは、使用例で説明されているパラメータを指定して、detach_partitions_from_value_stream を実行します。
これは役に立ちましたか?