PortableArchiver のススメ 東日技研 路川徹也. PortableArchiver とは? 実験中の少しの間だけ、データ収集した い →CSS Archive に登録するほどではないし、恒久的なレコード名でもない が、データ収集はする必要がある。 → そのためだけに Archiver.

Slides:



Advertisements
Similar presentations
セッション管理 ソフトウェア特論 第 8 回. ここでの内容 セッション管理の基本を知る。 HttpSession の使い方を知る。
Advertisements

プラグイン作成講座 Control System Studio 3.0 Takashi Nakamoto
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Powerpoint 機能の使い方. 1.簡単な図の作成 例として植物個体の図を作成 (1)輪郭を大まかに描く まず、「オートシェイプ」 → 「線」 → 「曲 線」を選び、輪郭を適当に描く.
1 なんとなく Ajax ~新しくて古い XMLHttp 川合孝典 (Kansai.pm) 2005/5/22.
SAP 環境における Active Directory 導入のメリット
WinDBG6によるRTX5.5デバッグ RTX開発環境 WinDBG6.0 debugモードで起動 232Cクロスケーブル
詳細検索の方法- EBSCOhost Guided Style 検索フィールド
安全なログオン手順 2004/08/26 Port139 伊原 秀明.
DB(データベース)のおはなし 作成者:小野正広 DBと言っても、  ドラゴンボール ではないですぞ! 3/1/2017.
最新ファイルの提供を保証する代理FTPサーバの開発
JXTA Shell (3) P2P特論 (ソフトウェア特論) 第6回 /
JPAを利用した RESTful Webサービスの開発
第3回 ファイルとフォルダ 伊藤 高廣 計算機リテラシーM 第3回 ファイルとフォルダ 伊藤 高廣
6-2 データベース 1.SQLite SQLを単純化した SQLite を使ってデータベースを操作 表「fruit」
Accessによるデータベース(3) Ver /11.
WagbyR6.5 Update 12 PPT版 更新情報
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
ファイルシステムキャッシュを 考慮した仮想マシン監視機構
文献管理ソフトRefWorksの利用.
3-2.データを取り出す 2004年 5月20日(木) 01T6074X 茂木啓悟.
HTTPプロトコルとJSP (1) データベース論 第3回.
第7章 データベース管理システム 7.1 データベース管理システムの概要 7.2 データベースの格納方式 7.3 問合せ処理.
新規配信先リスト登録 配信実行及び経過確認 配信状況確認 メルマガ関連(オプション)
複数CPU間のための共有メモリ 小島 隆史(中央大学大学院理工学研究科 國井研究室)
音声処理ソフトPraatの使い方.
WSDL と JAX-RPC 年10月20日 Webサービス II (第4回) WSDL と JAX-RPC 年10月20日.
 データベースによる並列処理 情報論理工学研究室  三宅健太.
マイクロソフト Access を使ってみよう 第1回
マイクロソフト Access での SQL 演習 第1回 SQL問い合わせ(クエリ)
基幹理工学研究科 情報理工学専攻 後藤研究室 修士1年 魏 元
Javaによる Webアプリケーション入門 第9回
データベース設計 データベース設計 第1回 データベース概論 坂口利裕.
Java ソフトウェア部品検索システム SPARS-J のための リポジトリ自動更新機能の実現
情報工学科 3年生対象 専門科目 システムプログラミング 第5回、第6回 ヒアドキュメント レポート課題 情報工学科 篠埜 功.
2004/05/13 3-4 データ型(カラムタイプ) について 発表者:藤村元彦 自然言語処理研究室.
九州大学キャンパスクラウド 利用法 情報ネットワーク特論 講義資料.
Office IME 2010 を使う.
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
第1回.リレーショナルデータベースを使ってみよう
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
製品情報 Windows Server 2003のサポート終了をむかえ、ファイルサーバーの入れ替えを検討されていらっしゃる方も多いのではないでしょうか?既存のファイルサーバーをいきなりクラウド化するとインターネット回線の影響で、エクセルやワードのようなサイズの小さなファイルでさえ、開くまでに時間がかかってしまうことがあります。
安全なモバイルエージェント システム Flyingware のための 仮想ディスクの実現
Javaソースコード蓄積・ 検索システムSPARS-Jの概要
Microsoft BizTalk Server & SAP PP モジュール 連携検証レポート概要
実行時情報に基づく OSカーネルのコンフィグ最小化
キャンパスクラウドによる 実験環境の構築 情報ネットワーク特論 講義資料.
仮想計算機を用いたサーバ統合に おける高速なリブートリカバリ
Jakarta Struts (2) ソフトウェア特論 第11回.
3-3.テーブルを更新する 2004年 4月22日(木) 01T6074X 茂木啓悟.
クイックガイド <キーワードによる検索方法>
ミドルウェア”TSUNAGI”を 用いたWEBアプリケーションの構築
Excelを便利にする250以上の機能を体系化したアドインはこちらです。
JXTA Shell (1) P2P特論 (ソフトウェア特論) 第4回 /
TCP/IPとプロセス間通信 2007年1月12日 海谷 治彦.
情報処理概論Ⅰ 2007 第5回 2019/4/7 情報処理概論Ⅰ 第5回.
クラウドにおけるVM内コンテナを用いた 自動障害復旧システムの開発
JXTA Shell (2) P2P特論 (ソフトウェア特論) 第5回 /
ソフトウェア保守のための コードクローン情報検索ツール
3.リレーショナルデータベース,主キー, SQL
Microsoft SharePoint Online の Web サイトを カスタマイズする方法
ユビキタスコンピューティングの ための ハンドオーバー機能付きRMIの実装
CO-Client Opeartion 1.1 利用履歴データベースの設計 (スキーマ バージョン 対応)
B2 須山哲 (susan) 所属:Stream
第2回.リレーショナルデータベース入門 SQL を用いたテーブルへの行の挿入 SQL 問い合わせの発行と評価結果の確認.
第1回.リレーショナルデータベースを使ってみよう
地理情報コンテンツ・データベースコンテンツ新規作成
ソケットの拡張によるJava用分散ミドルウエアの高信頼化
Presentation transcript:

PortableArchiver のススメ 東日技研 路川徹也

PortableArchiver とは? 実験中の少しの間だけ、データ収集した い →CSS Archive に登録するほどではないし、恒久的なレコード名でもない が、データ収集はする必要がある。 → そのためだけに Archiver をセットアップするのは面倒で、大げさ。 Archiver のバックアップが欲しい →CSS Archive を止めている間だけ、データ収集したい。 こんなニッチな要求を叶えるために 簡単に使える Archiver を作成

設計・製造コンセプト 設定が簡単 ChannelArchiver と同じ record リストを使用 (XML 形式 ) DB ファイル名を起動時に指定するだけ XML-RPC 接続ポート番号も指定可能 (default は 9000) Python の標準的なライブラリだけで作成 追加で必要なのは PythonCA と dateutil のみ DB は管理する必要のない python 標準の sqlite3 CSS DataBrowser で使用可能 ChannelArchiver と同じ接続方法 (XML-RPC) Python ファイルのコピーだけで使用可能 “#!” のパスだけは変更する必要あり

データ保存形式の違い ChannelArchiver は独自規格バイナリ形式 検索 / 更新等のファイルアクセスは非常に高速 データ形式が独自形式なので、データ集計が面倒 日付ファイル切替時に数秒の空白期間ができる PortableArchiver は汎用性を考慮して SQLite3 検索 / 更新等のファイルアクセスは比較的高速 データが DB なので、データ集計時は SQL 文でアクセス可能 rotateDb コマンドを使えば、日付ファイル切替の空白期間は なし

テーブル構造 pv レコードテーブル archive データテーブル 値は全て文字列に変換して保存 Waveform は ”,” 区切りの文字列に変換 DB ファイルの新規作成時に自動生成 名前説明型制約 id レコード ID integerprimary key name レコード名 textunique 名前説明型制約 id レコード ID integerindex timeProcess timerealindex val 値 textNot null

定義ファイルの書式 ChannelArchiver と同じ XML 形式 使用するタグはその一部 NTP CERL : OP:TEST 1

使用例 (1) : NTP 時間情報収集 NTP と GPS を使った時間ずれの情報を収集 予備実験なので PortableArchiver を使用 データ量は 6MB/10 日、データ数 13.3 万件 レコード数 56 、更新頻度 約 10 件 / 分

使用例 (2): エネルギーセンター エネルギーセンターの各チャネルデータを収集 データ量 26GB/100 日, 約 5 億件 レコード数 488 、更新頻度 約 2000 件 / 分 ファイルサイズが大きくなりすぎて起動 / 検索に時間がか かる 使用例 (3):PF-AR BPM PF-AR 全 BPM のステータスとデータを収集 データ量 1.3GB/1.6 時間, 約 2750 万件 レコード数 、更新頻度 約 28 万件 / 分 データの増え方が速過ぎたので停止

内部構造 DB Reader Writer (camonitor) Search ioc DbAccess CA listQueue XML-RPC SQL DB SQL Queue XML File Client PortableArchiver sqlite3 は同一スレッドからアクセスしないと lock が頻 発し、事実上使用できなくなる Search は rotate された古い DB への検索を行う

Write Writer は IOC からのデータを camonitor で受け取り、データバッファ 用 list に追加する。 Python の list は ThreadSafe 。 DbAccess はデータバッファ用 list のデータ数が 1000 件を超えるか、 設定時間を超えたら DB へデータを書き込む。 IOC camonitor list DbAccess DB list は ThreadSafe list は DbWrite 時に入替 camonitor は callback DB への書き込みは 設定時間 ( 通常 30 秒 )or データ件数 1000 以上

Read & Search Command,ResultQueue は同期処理 CurrentDB の日付範囲以上の検索をされると、 Search への問い合わせ。 rotate すると日付ディレクトリを作成し、 DB ファイルを移動する。 CurrentDB 以下のディレクトリを起動時に再帰検索して Search で使用する。 DbAccess Current DB Search への問い合わ せは、 CurrentDB の日 付範囲を超えて検索 された場合のみ ReaderClient Comamnd Queue Result Queue Search DB Result Queue Old DB Comamnd Queue rotate されると 、 Search でオー プンし直される

PortableArchiver の利点 可搬性のよさ CSS DataBrowser からのアクセス XML-RPC の独自コマンド追加 コマンドによる DB ファイルの rotate 等 データファイルが sqlite3DB なので、自前のクラ イアント作成が比較的容易 ChannelArchiver の設定ファイルを使用可能 データの切れ目のない複数 DB ファイルへの連続 的な検索

例:独自コマンド追加 rotateDb DB ファイルを rotate して 1file size を抑制 日付毎に file 管理することが可能に 使い方 (python) import xmlrpclib hostName=‘localhost’ portNumber=9000 fileName=‘2014/10/test_ sqlite3’ s = xmlrpclib.ServerProxy(' % (hostName, portNumber)) print s.archiver.rotateDb(fileName)

問題点(課題) Sqlite3 のファイルサイズが大きすぎるとファイルを開くのに時間が かかる 適当なサイズになったら rotate するようにする等の対策が必要 100MB 程度に抑える?(詳細は要実験) 設定ファイルの自動更新機能 途中まで作成してある レコード数が多すぎると起動に時間がかかる 改善中 性能評価をしていない 12,000record を処理できることは確認(起動に 10 分ぐらいかかった) 複数クライアントからの問い合わせ速度等 データ数等の状態を知るためのコマンドを追加 Web インターフェイスでもいいかも (CSS Archive のようなものを想定 ) 起動時に record が接続できないと、再接続しない 改善中 ソースコードが汚い 改善中