スーパーベース

彼らが私にタスクを設定したら-数千のブランチからのデータに基づいてオフィス-家庭用ハードウェア(P4-2GHz、1Gb RAM)に関するレポートを生成します。 これらは、1C-Trade 7.7(dbf)のベースであり、フラッシュドライブのブランチから来た数か月で切り離されました。 合計ボリュームは数百ギガバイト単位で測定され、コピーには1時間以上かかりました。 しかし、すべての支店にわたる3年間のレポートは数分で完了しました。 どうやって?











とても簡単です。 スーパーベースが作成されました。 いいえ、これはすべてのデータベースのデータがマージされる1つの大きな共通データベースではありません。 試したが、ゴミが判明した。 ボリュームが大きすぎる、データ同期の問題が多すぎる。 すべてがはるかに簡単です...







スーパーベースは、他のベースと連携できる空のベースです。 利用可能なデータベースのリストと、データを受信して​​レポートを生成するための一連の処理(スクリプト)があります。



たとえば、Spartak LLCのクライアントとの相互決済に関するレポートが必要です。 名前とTIN(ある場合)の一部を示し、期間とその他のパラメーターを設定します。 スーパーベースは、認識しているデータベースを1つずつ起動し、APIを介して(OLEを介して)コマンドを送信し、そのようなパラメーターを使用してそのようなレポートを生成します。 ベースはレポートを生成し、スーパーベースに提供します。 各データベースの個別のレポートから、1つの一般的なレポートが収集されます。 レポート用に収集されたデータはキャッシュされます;同様の条件で再生成する場合、データを再収集する必要はありません。



データベースへのアクセスはAPIを介して行われるため、特定のデータベースのバージョンと構造はまったく重要ではありません。 ブランチは独立しており、それぞれに問題があり、それぞれが独自の方法で決定します。 レポートを発行するための一般的な形式と、プライマリドキュメント(請求書、支払い、請求書、令状、その他の標準的な紙のドキュメント)を受信するための形式のみ。 さらに、各ブランチのデータの品質は異なります。 ディレクトリとドキュメントを慎重に管理し、基本的な詳細をすべて記入する人もいます。 他の人は、エラーとテイクで無駄に書きますが、詳細が記入されていないか、エラーがあります。 しかし、これはそれほど重要ではなく、名前の一部で十分です。 最終レポートでは、名前のさまざまなバリエーションによる分類があります。不要な名前を削除する方が、不足している名前を取得するよりも簡単です。



別の大きな利便性-ベースは異なるメディアに置くことができます。 フラッシュドライブ、USB-HDD、ネットワークボールなどです。 データベースは「外出先」で接続および切断できます-自律的かつアトミックに実行されるため、別のデータベースの障害は害になりません。 IOPSとロックのパフォーマンスを失うことなく、異なるメディアから複数のデータベースを同時に実行できます。 貧しい人々のためのこのような動的パーティション。



SSDやより強力なハードウェアでMS-SQLを使用する場合でも、パフォーマンスは1つの共通ベースよりもはるかに多く達成されました。 同時に、複数のデータベースが異なるキャリアから起動されましたが、個々のデータベースのロックとシングルスレッド化に問題はありませんでした。 フラッシュドライブでは、ベースがHDDよりも高速に動作することがありました。 レポートは部分的に形成されたため、プロセス全体が終了する前に検討を開始できました。 条件にエラーがある場合、完全に形成されるまで待たずにレポートを遅くすることができます。



別のプラスは安全性です。 支店の拠点は毎月切断され、ポータブルメディアに保存されていたため、

-見知らぬ人のための追加データはありませんでした(今月のデータは最大です)

-cなスタッフが以前の期間のデータを台無しにする方法はありません。 そして、あなたが突然台無しにすることに決めた場合-あなたは簡単に前の期間の終わりの状態と比較することができます

-不可抗力が1か月以内の場合のデータ損失。 かつて侵入者の攻撃がありました。 わずか3日でデータを失い、悪役は1週間で1拠点のスタブを取得しました。

-不可抗力の場合のポータブルメディア(特にフラッシュドライブ)は、簡単に破壊したり隠したりできます。 トレース、パスワード、またはその他のヒントはありません。 そして、仕事は影響を受けません。



実装の詳細について少し。 これはすべて1C-Enterprise 7.7リリース25で行われました。データベースを開くための2つのオプション-OLEを介して、プライマリ情報とディレクトリをゆっくりと引き出します。 2番目は、autorun.ert処理が開始された、コマンドラインからのスタンドアロンの起動です。 データベースを開く前に、このautorun.ertと設定ファイルがデータベースディレクトリにコピーされました。 処理後、結果はファイルに保存されました(通常、値のリストまたは値のファイル()を介してシリアル化された値のテーブルとして)。



ほとんどの場合、スーパーベースは、主要組織を業務上の取引拠点から法人の「クリーン」拠点に移転するために使用されました。 これを行うには、まず表形式のパーツのないすべての請求書の大きなリストを作成しました。 次に、このリストは会計士によって手動で(ほぼ手動で)フィルタリングされ、特定の法人の「クリーンな」ドキュメントのみが残りました。 その後、利用可能なデータベースから、フィルタリングされたリストのドキュメントが法人の法的データベースにコピーされました。



All Articles