OracleをPostgreSQLに眮き換え、DLPシステム内のパヌティショニングを操䜜する機胜

今日は、DLP゜リュヌションにずっお非垞に重芁なトピック、぀たりデヌタストレヌゞ甚のDBMSの遞択に觊れたいず思いたす。 歎史的に、ロシアのほずんどのDLPはこれらの目的でOracleデヌタベヌスを䜿甚しおいたした。 これにより、特定の財務䞊の制限が顧客に課せられたす。Oracleラむセンスのコストは、DLPシステムのコストに蚈䞊されたす。 これにより、補品ナヌザヌのオヌディ゚ンスを枛らす特定のフィルタヌが䜜成されたす。技術的にも経枈的にも、誰もがOracle DBMSを賌入できるわけではありたせん。



珟圚、茞入代替が囜内を移動するずき、公共郚門はだけでなく無料のDBMSをサポヌトするDLPの需芁を生み出しおいたす。 これは非垞に具䜓的な衝動ですが、無料のDBMSに急いでいるため、補品の利䟿性、パフォヌマンス、機胜を維持するこずが重芁です。 この蚘事では、PostgreSQLサポヌトを実装し、Solar Dozorでパヌティションスキヌムを開発しお、この問題をどのように解決したかに぀いお説明したす。







Oracle vs PostgreSQL



Solar Dozorシステムは、リレヌショナルDBMSをメむンストレヌゞシステムずしお䜿甚したす。 最近たで、DBMSを遞択するための基準は非垞に単玔でした。぀たり、ボリュヌムず、アヌカむブを運甚可胜ず「オンデマンド」に分割する胜力です。



デヌタベヌスのボリュヌムに関しお、経隓的に導き出された特定の制限がありたした。3〜4 TBを超えおはなりたせんこれは玄500䞇件の傍受メッセヌゞです。 これらの倀を超えるず、システムの倧幅な䜎䞋が芳察されたした。叀いデヌタを削陀するク゚リを定期的に実行する必芁があるためにIOに負荷がかかり、バキュヌム凊理が行われ、ク゚リの実行速床が䜎䞋したした倧きなサンプルでは、​​テヌブルは実際に完党にスキャンされたした。 したがっお、必芁なボリュヌムの掚定倀がこれらの数倀を超えた堎合、デヌタストレヌゞには垞にOracle DBMSが䜿甚されたした。



2番目の基準-アヌカむブを運甚ず「オンデマンド」に分割する胜力は、DBMSでパヌティションを実装する必芁があるず読むこずができたす。 2016幎たで、Solar Dozor DLPシステムは、Oracle DBMSでのパヌティショニングのみをサポヌトしおいたした。



お客様の予算は限られおおり、堎合によっおは単にOracleラむセンスを賌入する䜙裕がないこずもありたした。 そのため、10〜15 TBのストレヌゞ容量を持぀䞀郚のプロゞェクトでは、PostgreSQLの䜿甚を開始したした。



PostgreSQLでのパヌティション分割の実装方法



Solar Dozorシステムのアヌキテクチャず機胜により、OracleずPostgreSQLの䞡方のデヌタベヌスをいく぀でも接続できたす。 同時に、デヌタベヌスごずに、デヌタベヌスで怜玢するか、メッセヌゞをアヌカむブするかを指定できたす。 そのため、最初に1぀たたは異なるサヌバヌ䞊に耇数のPostgreSQL DBMSむンスタンスを䜜成し、1か月ごずに順番にデヌタを曞き蟌むこずにしたした。 保管期間の終了埌、最も叀いベヌスが再䜜成されたした-等々。 しかし、この゜リュヌションはサポヌトの点で非垞に高䟡であり、非垞に狭い顧客局にのみ適しおいたした。



デヌタパヌティショニングの次の実装も「1぀のセクション-1぀のデヌタベヌス」ずいう考え方に基づいお構築されたしたが、珟圚はすべおのデヌタベヌスが同じPostgreSQLむンスタンス内に䜜成されおいたす。 察応するナヌティリティは、セクションを含むすべおの操䜜甚に䜜成されおおり、このようなスキヌムは耇数の顧客にずっお非垞にうたく機胜したした。 それに基づいお、䞀郚はOracleに移行したした。



ただし、この実装には、Solar Dozorの倚くのサヌビスの機胜に関連する倚くの問題がただありたした。 倚数のセクションがある堎合、むンスタンスごずに同時に1000以䞊の接続を維持する必芁がありたした。 さらに、新しいリリヌスがリリヌスされたずきにデヌタスキヌマを曎新するこずはあたり䟿利ではありたせんでした。



最終的に、PostgreSQL自䜓が提䟛するパヌティション分割を䜿甚するこずにしたした。 ぀たり、メッセヌゞが配眮された日付を参照するキヌがあるすべおのテヌブルに぀いお、このキヌに制限を加えた継承ラベルが䜜成されたす。 デヌタは、セクションごずに個別に䜜成されるトリガヌによっお、目的のテヌブルセットに配眮されたす。 このようなスキヌムにより、必芁なすべおの機胜が提䟛されたす。ク゚リを実行するず、芁求が行われおいる期間䞭、それらのデヌタセクションのみがディスクから生成されたす。 セクションを埪環から削陀する必芁がある堎合、テヌブルは基本継承から削陀され、その埌ダンプされたす。 管理ナヌティリティは、オフラむン/オンラむン翻蚳、远加、削陀、ダンプなどのすべおのセクション甚に䜜成されおいたす。



この実装はOracleの真の代替ずなり、数十テラバむトのデヌタをオンラむンで保持し、䜎速のストレヌゞシステムのアヌカむブに数十個のデヌタを保持できるようになりたした。 すべおの新芏顧客に、PostgreSQLでのパヌティション分割を提䟛しおいたす。 Oracleパヌティショニングを䜿甚しおいる既存のお客様がPostgreSQLに切り替えたい堎合は、新しいデヌタをPostgreSQLに曞き蟌み、叀いデヌタは廃止されるたでOracleに残すこずをお勧めしたす。



特に顧客が補品の叀いバヌゞョンのデヌタを無効にしおいる堎合、開発ず実際の移行䜜業の䞡方が非垞に高䟡であるため、OracleからPostgreSQLぞの特別なデヌタ移行手順を蚘述するこずは䞍適切であるこずがわかりたした。 そしお、そのようなリク゚ストはほずんどありたせん。



DLPシステムでデヌタベヌスパヌティショニングを䜿甚しお達成されたこず



生産性を向䞊



傍受されたメッセヌゞはすべおDLPシステムに保存されたす。 DLPタスクの堎合、情報がい぀送信され、傍受されたかを知るこずが重芁です。 したがっお、むンタヌセプトされたすべおのメッセヌゞにはタむムラむンぞの明確なリンクがありたす。 したがっお、傍受の日付、より正確には、傍受の瞬間に最も近いものずしおDLPシステムで凊理するメッセヌゞの受信の日付によるRANGEパヌティショニングを䜿甚したす。 そのため、パヌティション分割を䜿甚する堎合、デヌタは期間ごずに现分化されたす。 通垞、1週間の期間が䜿甚されたす。



このような内蚳の利点は䜕ですか ほずんどの堎合、DLPシステム内の芁求は、非垞に限られた短い期間だけ行われたす。 したがっお、3〜6か月間デヌタを保存し、1-2〜4週間情報を芁求するず、ディスクシステムから読み取られるデヌタが少なくなるため、゜リュヌションの速床が倧幅に向䞊したす。 パヌティション化された回路ずパヌティション化されおいない回路の䞡方が、かなりの数の異なるむンデックスを䞊列に構築するこずは明らかです。 ただし、ここでは、フルスキャンを実行する必芁があるか、むンデックスを䜿甚する方が良いかは、DBオプティマむザヌに任せおいたす。 パヌティショニングが䜿甚される堎合、限られた量のディスクスペヌスを占有する、垞にかなり明確なデヌタの䞀郚になりたす。



管理䜜業の軜枛



ク゚リ実行速床は、パヌティション分割を䜿甚する利点の1぀にすぎたせん。 もう1぀の利点は、デヌタ保持期間の管理を倧幅に簡玠化する機胜です。 パヌティショニングがない堎合、叀いデヌタを毎日たたは毎週削陀するように芁求する必芁がありたす。そうしないず、デヌタベヌスの特定のボリュヌムに達するず、パフォヌマンスずメンテナンスの問題が始たりたす。 パヌティショニングは、特定のセクションの叀いデヌタの削陀をより単玔な削陀操䜜に枛らしたす。 Oracleでは、このために2぀のパヌティションテヌブルスペヌスずそれらのデヌタファむルをディスクシステムから削陀するだけで十分です。 PostgreSQLでは、このセクション甚に䜜成されたデヌタベヌスを削陀する必芁がありたす。



今埌のSolar Dozorリリヌスでは、継承テヌブルを䜿甚する暙準的な方法を䜿甚しお、PostgreSQLのパヌティション分割が実装されたす。 したがっお、新しいバヌゞョンでは、セクションを削陀するず、このセクションを担圓するテヌブルが削陀されたす。



デヌタストレヌゞコストを削枛する



DLPでのデヌタパヌティショニングの倧きな利点は、デヌタアヌカむブを運甚可胜な、いわゆる「デマンドアヌカむブ」に分割できるこずです。 この分離の本質は䜕ですか



ほずんどのお客様にずっお、盎近/運甚アクセスで過去3〜6か月のデヌタを傍受するこずが重芁です。 この期間よりも叀いものは、䞀般的に削陀する準備ができおいたす。 ただし、倚くの人は、傍受したメッセヌゞの党量に基づいお調査を実行できるように、このデヌタを保持したいず考えおいたす。 これは、䌚瀟の内郚セキュリティ暙準ず、倚くの暙準に準拠するための芁件の䞡方によっお決定されたす。 長い保存期間には、数十テラバむトのディスク容量が必芁です。 さらに、SAS 10kディスクは通垞オンラむンアヌカむブ甚に蚭蚈されおおり、これらの数十テラバむトの入力は非垞に高䟡です。 パヌティションスキヌムでは、運甚䞊の可甚性の期間を超えたデヌタを怜玢゚ンゞンから簡単に切断し、䜎速で安䟡なストレヌゞシステムに配眮できたす。 倚くのお客様がオフラむンアヌカむブストレヌゞ甚にSATAディスクを賌入しおいたすが、他のお客様はテヌプラむブラリを䜿甚しおいたす。これは、党ストレヌゞ期間䞭に数回だけ必芁ずなる200〜300テラバむトのデヌタを保存する必芁がある堎合に特に重芁です。 次の方法で実装されたす。



オラクル

廃止されたセクションの衚スペヌスはオフラむンで転送され、その埌、このセクションのデヌタファむルは、それらのために準備されたストレヌゞに転送されたす。 切断されたセクションに関連する期間を怜玢する必芁が生じた堎合、デヌタファむルが戻され、セクションが接続され、ク゚リを実行できたす。 その埌、セクションはオフになり、栌玍されたす。



PostgreSQL

廃止されたセクションはオフラむンに切り替えられ、このセクションを担圓するテヌブルたたはデヌタベヌスをダンプpg_dumpし、デヌタベヌスからこれらのテヌブルを削陀したす。 ダンプは、準備されたオフラむンストレヌゞに保存されたす。 さらに、Oracleずの類掚により、このデヌタが芁求されるず、削陀されたテヌブルはダンプpg_restoreから埩元されたす。 セクションはオンラむンで転送され、その埌、セクションを怜玢できたす。 調査の最埌に、セクションがオフラむンになり、テヌブルが削陀されたす-堎所が解攟されたす。



これらすべおの切断/接続操䜜を実行するには、資栌のあるOr​​acleたたはPostgreSQL DBMS管理者である必芁はありたせん。 これを行うには、セクションのステヌタスの衚瀺、接続、切断、削陀などを可胜にする特別なナヌティリティがありたす。 Oracleの堎合、セクションを切断/接続し、セクションを別のディレクトリに移動する操䜜の䞀郚は、Webむンタヌフェむスから盎接利甚できたす。 DBMS内でパヌティションを䜜成および無効化する自動化により、メンテナンスの人件費の問題がなくなりたす。 残っおいるのは、無効なセクションを準備枈みリポゞトリにコピヌするこずだけですが、管理者の特別な資栌は必芁ありたせん。



たずめ



その結果、Solar Dozor DBMSのパヌティショニングのおかげで、補品のパフォヌマンスず怜玢速床が向䞊したした。 アヌカむブの管理が容易になりたした-傍受したデヌタは簡単にアンロヌドされ、ディスクリ゜ヌスが解攟され、必芁に応じお元に戻されたす。 これらはすべお自動的に行われるため、DBMSを管理するために別の資栌のある専門家を雇う必芁はありたせん。 最埌に、顧客はデヌタを任意の期間保存でき、同時にストレヌゞシステムに倚くを費やす必芁はありたせん。



All Articles