この記事では、私に最近発生した状況と、それを解決するために採用された方法についてお話したいと思います。 私はプロのプログラマーではありませんが、少しの経験がこの問題の解決に役立ちました。
この記事では、プログラミング言語の「一般的なフレームワーク」については説明せず、ms dosの古い「フレームワーク」と、このデータをさらに変換してデータを保存する形式の分析に焦点を当てます。最新のデータベース形式の1つ。
プレストーリー私は市立大学の学生であり、「水生生物資源と海洋養殖」の専門分野を勉強しています。すでに述べたように、私はプロのプログラマーではありませんが、卒業作業につながる練習を始めたとき、プログラミングスキルは取り残されていませんでした。
私の仕事の仕事の1つは、魚の特定の数の形態計測パラメーターを分析することでした。 ただし、おそらく既に推測されているように、ソースデータは手書き形式でした。 データサイズの比representation的な表現については、これは各インスタンスの40個のパラメーター(魚、よく、技術者-データベースの40列)とサンプルサイズ-188匹の魚(そして結果として-188行、40の塗りつぶされた列)です。
このデータを任意のデータベースに手動で入力することは、最も合理的なソリューションではありません。 1994年にこのデータを分析した実践メンターから「このデータの電子版はありますか」という質問で問い合わせると、肯定的な回答が得られました。 その後、5インチフロッピーディスクから正常にコピーされ、分析のために持ち帰られました。 成功は近いと思われ、大量のボタン操作が私を迂回しました。 それはそうでしたが、完全ではありませんでした。
データ分析フロッピーディスクからコピーしたデータを開くと、最初に目を引いたのはファイル拡張子(.FW3)でした。 私はまだそのようなフォーマットに遭遇していません、そして、当然、私は最初にアドバイスのために私のお気に入りの検索エンジンに頼りました。 ほとんどすぐに、これがOSの第3バージョンの
フレームワークの形式であることが明らかになりました。 このソフトウェア製品の最新バージョンは10です。この製品の作成者のWebサイトを読んだ後、入手するのは簡単ではないことがわかりました(有料)。
トレントトラッカーやこのソフトウェア製品の他のソースによる検索でも何も得られなかったため、受信したファイルの形式の分析を開始することが決定されました。
この形式の各テーブルには3つのファイルがありました(テーブル名がtableであると仮定します):
- table_I.FW3-データベーステーブルの列の名前と、明らかに_S.FW3ファイルのデータリンクを提供します
- table_S.FW3-理解できなかった
- table_T.FW3-含まれるテーブル行
いくつかのインデックスファイル(table_I.FW3)の剖検により、特定のパターンが示されました。
これで、解析する列の先頭と末尾を安全に見つけることができました。
同様の状況が文字列ストレージで繰り返されました:
ただし、ここでは、区切り記号はテーブルの開始と終了だけでなく、行の開始と終了も示しています。
経験の浅いプログラマーでさえ、そのようなパターンの存在は、データをプログラムで任意の形式に変換できることを明確に示しています。 私の場合、十分な経験があったため、データウェアハウスとしてmysqlが選択されました。
データ変換手元には沢山の沼があったため、データマイニングにはphpが選択されました(ただし、これは最適なソリューションではないかもしれませんが、このタスクには言語の機能で十分です)。
このタスクの実装のためにクラスの実装を200行で説明するには、このリソースは必要ないと思います。 以下にソースコードを示します。そのようなファイルを変換するときに誰かの助けになるかもしれません。
パーサークラス$config = array( 'url' => 'http://localhost', 'db_host' => 'localhost', 'db_user' => 'mysql', 'db_pass' => 'mysql', 'db_name' => 'fish' ); class dataMiner { private $database = null; private $file_byte_column = null; private $file_byte_table = null; private $filename = null;
クラスを使用してFW3からmysqlデータベースにデータを解析する例(ソーステーブルFW3 M1 _ *。FW3、mysql bio_trachurusのターゲットテーブル):
結果その結果、私が都合の良い形式で観察結果を分析するために必要な観察結果を受け取り、手動で入力する余分な時間の無駄を省きました。
例とともに
githubで公開されたソースコード。
追伸 -コードの品質を強くscるな
Ppc-trachurusは、一部のユーザーの考えられることとは関係ありません。
Wikiで絞り込む