個人財務 RDBMSモデルからHBase-Dummiesに移行する

RDBMSモデルからHBase-Dummiesに移行する

Anonim

アプリケーションの設計フェーズに直面していて、HBaseが適していると思われる場合は、HBaseのデータモデルとアーキテクチャーに合わせて行キーとスキーマを設計する必要があります正しいアプローチ。しかし、RDBMSのためにもともと設計されたデータベースをHBaseに移行するのが理にかなっていることがあります。

このアプローチが理にかなっている一般的なシナリオは、スケーラビリティの限界に達しているMySQLデータベースインスタンスです。 MySQLインスタンス( シャーディング、つまり )を水平にスケーリングするためのテクニックがありますが、MySQLは単にシャーディング用に設計されたものではないため、このプロセスは通常面倒で問題になります。

<!リレーショナルモデルからHBaseモデルへの移行は比較的新しい分野です。しかし、一定の確立された考え方のパターンが浮上しており、移行に近づくときに従うべき3つの重要な原則に合体しています。これらの原理は、非正規化、重複、999および999インテリジェントキー(DDI)

である。非正規化: リレーショナルデータベースモデルは、a)正規化されたデータベーススキーマ、およびb)SQL操作に応答するためのテーブル間の結合に依存する。データベースの正規化は、データが更新され、取得されるときに、データの損失、冗長性、およびその他の異常を防ぐ技術です。 <!正規化されたデータベーススキーマに達するために専門家が従う多くのルールがあります(データベースの正規化は全体的な検討です)が、通常はより大きなテーブルをより小さなテーブルに分割して関係を定義することになりますそれらの間の。データベースの非正規化は正規化の逆です。より小さいより具体的なテーブルは、より大きなより一般的なテーブルに結合されます。 <! - 3 - > これは、HBaseに移行する際の共通のパターンです。なぜなら、テーブル間で結合が提供されず、コストのかかるディスク操作が必要なため結合が遅くなるからです。正規化によって得られた保護が無効であるため、アップデートおよび回復の異常に対する防御はHBaseクライアントアプリケーションの仕事です。 重複:

  • データベーススキーマを非正規化すると、複数のテーブルにまたがる高価な読み取り操作を避けることができるため、データの複製が終了する可能性があります。余分なストレージについては心配しないでください(当然の理由で)。 HBaseの自動スケーラビリティを利用することができます。ただし、クライアントアプリケーションはデータを複製するために余分な作業が必要になることを覚えておいてください。HBaseは、行間で行レベルでない原子操作(HBASE-5229 JIRAで説明されている例外を除く)表。 インテリジェントキー:

    HBaseに格納されたデータは行キーで順序付けされ、行キーはシステムによって提供される唯一のネイティブインデックスであるため、行キーの注意深いインテリジェントなデザインが大きな違いを生み出す可能性があります。たとえば、行キーは、サービス指図番号とサービス指図を配置した顧客のID番号の組み合わせになります。

    この行キーの設計により、同じ表の同じ行キーを使用して、サービス指図に関連するデータを検索したり、顧客に関連するデータをルックアップしたりすることができます。この手法は、一部のクエリでは高速になり、コストのかかるテーブル結合を回避します。

    これらの特定のパターンを明確にするために、顧客連絡先情報テーブルを作成し、典型的なサービス注文データベースのコンテキスト内に配置します。この図は、正規化されたサービスオーダーデータベーススキーマの外観を示しています。

    RDBMS正規化の規則に従って、サービスオーダーが閉じられ、おそらく削除されたときに顧客データが失われないように、サービスオーダーテーブルとは別にサンプルCustomer Contact Informationテーブルを設定します。 Productsテーブルに対しても同じアプローチをとってください。つまり、サービス注文とは独立して新しい製品を架空の会社データベースに追加することができます。

  • RDBMS結合操作に依存することにより、このスキーマは、特定の製品に対して開かれたサービス注文の数と、その製品が使用されている顧客のロケーションとを明らかにするクエリをサポートします。 それはすべて上質で素敵ですが、RDBMで使用するスキーマです。このスキーマをHBaseスキーマにどのように移行しますか?次の図は、可能なHBase方式(DDI設計パターンに従う方式)を示しています。

    顧客連絡先情報テーブルは、以前に使用された外部キーの代わりに顧客名と連絡先情報を含めて非正規化されています。また、顧客連絡先情報テーブルをそのままにしてデータを複製します。サービス注文テーブルと顧客連絡先情報テーブルの結合は不要です。

  • さらに、製品番号と顧客番号とを組み合わせてサービス注文番号(例えば、A100 | 00001)を形成するインテリジェントな行キー設計が採用されている。このインテリジェントキーを使用すると、サービスオーダテーブルは、製品の不具合や現在製品の問題が発生している顧客に関する重要なレポートを提供できます。 これらすべてのクエリはすべて、アプリケーションの行レベルのアトミックな方法でHBaseによってサポートされます。 HBaseが行キーを注文し、それらを辞書順にソートすることを知っているので、アプリケーションはレポートのスキャンを発行するときにデータの局所性についてある程度推測することができます。

    HBaseスキーマで表されるサービスオーダーデータベースは、比較的簡単な例ですが、HBaseがRDBMS世界と交差することがある場合があることを示しています(たとえば、すべてのA *シリーズ製品番号はすべて一緒に格納されます)。重要な価値を提供します。架空の会社がテラバイトまたはペタバイトのサービスコールデータを保存する場合、HBaseはコスト、信頼性、性能、および規模の点で大きな違いを生み出します。

サービスオーダHBaseスキーマは、いくつかの異なる方法で設計できます。確かに、設計はすべてサポートする必要のあるクエリに依存しますが、HBaseアーキテクチャとDDIデザインパターンを十分に理解している限り、リレーショナルデータベースを非常に強力なHBaseアプリケーションに移行して運用することができます。

この例では、HBaseクライアントAPIを利用するJavaアプリケーション、またはおそらくApache Thriftを使用する別の言語を使用してクエリを実行したと仮定しています。このアプリケーションモデルは要件をうまく適合させることができ、架空のサービス会社にとって便利なパフォーマンスとカスタマイズオプションを提供します。

RDBMSモデルからHBase-Dummiesに移行する

エディタの選択

Facebook上の人、アプリケーション、招待をブロックする方法 - ダミー

Facebook上の人、アプリケーション、招待をブロックする方法 - ダミー

設定は、Facebookで快適に過ごせるようにするための予防措置です。ブロックリストは通常​​、より反応的です。誰かがあなたのことを気にするFacebook上の何かをした場合、彼をブロックしたり、あなたが影響を及ぼす特定の行動をブロックすることを選ぶかもしれません。制限付きリスト、ユーザーブロック、ブロック...

Facebookのタイムラインカバーを変更する方法写真ダミー

Facebookのタイムラインカバーを変更する方法写真ダミー

Facebook、あなたのタイムラインはあなたの友人のものと比べて少し空白に見えるかもしれません。カバー写真が必要です。まもなくタイムラインがいっぱいになります。しかし、まず、人々があなたを見つけてあなたについて知ることができるように、基礎を記入したいと思っています。人々が最初にすることは...

正しいFacebookページタイプを選択する方法 - ダミー

正しいFacebookページタイプを選択する方法 - ダミー

サービス、またはビジネスを利用するには、Facebookのページオプションの賛否両論に気づく必要があります。あなたの6つの主要なオプションを見てみましょう:ローカルビジネスまたはプレースカンパニー組織または機関ブランドまたはプロダクトアーティストバンドまたは公共図エンターテインメント原因またはコミュニティ次の...

エディタの選択

他のKloutインフルエンサーを推薦する方法 - ダミー

他のKloutインフルエンサーを推薦する方法 - ダミー

インフルエンサーリストを使用してKloutが+ Kを与えると説明するアクションです。あなたのKloutスコアの一部は、他人から受け取った裏書の数に由来します。

あなたのソーシャルメディアメトリクスの目標を微調整する方法 - ダミー

あなたのソーシャルメディアメトリクスの目標を微調整する方法 - ダミー

ソーシャルメディア指標の目標を微調整するための販売漏れデータあなたの目標を微調整することの一部は、希望から​​マイルストーンに移行するまで、それらを磨くことです。人々がゴールを間違えていることのいくつかの例を以下に示します。これは希望、夢、偉大なものです。

Klout特典の電子メール通知を取得する方法 - ダミー

Klout特典の電子メール通知を取得する方法 - ダミー

Ifあなたは定期的にKloutを訪れる習慣ではないので、あなたはPerksの電子メールアラートを作成することができます。あなたがソーシャルメディアの世界でやっていることすべてを把握するのは難しいかもしれません。これはあなたのソーシャルメディア管理を簡素化するのに役立ちます。あなたがパルクの資格を得て、そして...

エディタの選択

Outlook 2002でパブリックフォルダで公開する - Microsoft ExchangeネットワークでOutlook 2002を使用する場合はダミー

Outlook 2002でパブリックフォルダで公開する - Microsoft ExchangeネットワークでOutlook 2002を使用する場合はダミー

パブリックフォルダを使用できます。パブリックフォルダは、グループ全体が見てアイテムを追加できる場所です。タスクや連絡先用のパブリックフォルダを持つことができます。

Outlookの迷惑メールフィルタを設定する方法 - ダミー

Outlookの迷惑メールフィルタを設定する方法 - ダミー

Outlookのオプション。非常に積極的に設定すると、迷惑メールが少なくなりますが、正当なメッセージを迷惑メールとマークすることがあります。それほど攻撃的ではないように設定すると、受信トレイにもっと迷惑をかけることになります。 Outlookに付属しています...

Outlook 2013で連絡先グループを作成する方法 - ダミー

Outlook 2013で連絡先グループを作成する方法 - ダミー

Outlook 2013で連絡先グループを作成する方法あなたのリストの名前を作り、あなたのシステムに保存した名前のコレクションから選ぶという単純な問題です。連絡先グループは電話番号とメールアドレス、電子メールアドレスだけを追跡しません。 ...