[プロジェクト] 医療用アプレットのフルスタック開発 第1章 コース紹介 1.5 HBase+Phoenixビッグデータプラットフォームの構築

【案件】医療用アプレットのフルスタック開発

ここに画像の説明を挿入

第1章 コース紹介

1.5 HBase+Phoenix ビッグデータ プラットフォームの構築

通常、MySQL データベースは開発プログラムで最も使用されますが、MySQL データベースには避けられないハードルがあります。1 つのテーブルのデータ量が 2000 万を超え、
CRUD のパフォーマンスが急速に低下します。

したがって、テーブルを縮小するという目的を達成できるように、半年または 1 年のデータを定期的にアーカイブ データベースに移行するように DBA または自動化されたスクリプトを配置する必要があります。通常の MIS システムを開発している場合、ビジネス データはそれほど多くなく、MySQL は定期的なアーカイブなしでサポートできます。しかし、e コマース プラットフォームと同様のプロジェクトでは、毎日大量のビジネス データが生成され、1 ~ 2 か月で数千万のデータが蓄積される可能性があります。この場合、データのアーカイブを頻繁に行うか、アーカイブなしで数百テラバイトに対応できるビッグ データ プラットフォームを選択します。ここでは、開発の難易度を下げるだけでなく、DBA を雇う運用と保守のコストを削減できる後者を選択します。

1.5.1 ビッグデータプラットフォームの技術選択
1 HBase テクノロジー

HBase は、Apache Hadoop と Apache ZooKeeper の上に構築された、バージョン管理された分散型の列指向のオープン ソース データベースです。

HBase は、高信頼性、高性能、カラム指向、およびスケーラブルな分散ストレージ システムです. HBase テクノロジーを使用すると、大規模な構造化ストレージ クラスターを安価な PC サーバー上に構築できます_.

HBase は、一般的なリレーショナル データベースとは異なり、非構造化データ ストレージに適したデータベースです。HBase は行ベースではなく、列ベースです。

ここに画像の説明を挿入

HBaseの特徴

  1. 大規模なデータ ストレージである HBase のテーブルは、数百億行 x 数百万列のデータを保持できます。
  2. 列型ストレージ、HBase のデータは列に基づいて格納され、列は動的に追加および削除できます。
  3. 準販売クエリ、HBase は大量のデータの下で準リアルタイム クエリ (100 ミリ秒以内) に近づくことができます
  4. 複数のバージョン。HBaser のデータの各列には複数のバージョンがあります。
  5. 信頼性の高い HBase のデータは HDFS に保存され、Zookeeper に依存して Master と RegionServer の調整された管理が行われます。

HBase はテーブル構造をサポートしていますが、操作が不便です。たとえば、次は学生テーブルで、多数のフィールドが含まれています。

例: 学生データ テーブル

ここに画像の説明を挿入

Student テーブルに新しいレコードを追加する場合は、次のコマンドを実行する必要があります。

put 'Student','0001','StuInfo:Name','Tom Green',1

データを取得したいときは、get コマンドを実行するだけです。

get 'Student','0001'

SQL文に慣れている私たちにとっては、上記のコマンドが単純なものであれば問題ありませんが、複雑な条件や関数が重なると可読性が非常に悪くなるので、Phoenixの技術を導入する必要があります

scan 'mytest:test01',FILTER=>"RowFilter(=,'substring:202006')",LIMIT=>1

count 'mytest:test01',FILTER=>"RowFilter(=,'substring:202004')",INTERVAL=>10000
2 フェニックステクノロジー

Phoenix は HBase に構文プレゼンテーション レイヤーを追加し、SQL ステートメントを使用して HBase でデータを読み書きできるようにします. オンライン トランザクション処理を行うことができ、
低レイテンシー機能を備えているため、はるかに便利です.

Phoenix: SQL を一連の Hbasel スキャン操作にコンパイルし、スキャン結果から標準の JDBC 結果セットを生成します. 数千万行のデータを処理するのに数ミリ秒または数秒しかかかりません. また、Phoenix は、プロジェクトに統合できる MyBatis フレームワークもサポートしています。

ここに画像の説明を挿入

1.5.2 HBase と Phoenix のデプロイ
1 画像ファイルのインポート

まず、コースで共有されているリソースで phoenix.tar.gz イメージ ファイルを見つけ、このファイルを CentOS システムにアップロードし、コマンドを実行して、イメージ ファイルを Docker にインポートします。

ここに画像の説明を挿入

注文:docker load < phoenix.tar.gz

ここに画像の説明を挿入

注文の実行

ここに画像の説明を挿入

最初にdockerを起動することを忘れないでください

ここに画像の説明を挿入

既存のミラーを表示

ここに画像の説明を挿入

2 コンテナを作成する

イメージにはすでに HBase と Phoenix が含まれているため、コンテナーを作成するだけで済みます。

HBase は大量のメモリを使用する必要があるため、ここでは特定のメモリ サイズを指定しません。コンテナーは自動的に空きメモリを使用します。コンテナー内のデータ ディレクトリは です。このディレクトリをホスト マシンのディレクトリ/tmp/hbase-root/hbase/dataにマップします。/root/hbase/data

docker run -it -d -p 2181:2181 -p 8765:8765 -p 15165:15165 \
-p 16000:16000 -p 16010:16010 -p 16020:16020 \
-v /root/hbase/data:/tmp/hbase-root/hbase/data \
--name phoenix \
boostport/hbase-phoenix-all-in-one:2.0-5.0

ここに画像の説明を挿入

現在稼働中のコンテナ

ここに画像の説明を挿入

3つのオープンポート

著者はここでファイアウォールを直接オフにしました

ここに画像の説明を挿入

4 フェニックスの初期化

コマンドを実行し、Phoenix コンテナーに入り、コマンドを実行してHBASE_CONF_DIR環境変数を設定します。

docker exec -it phoenix bash

export HBASE_CONF_DIR=/opt/hbase/conf/

ここに画像の説明を挿入

次に、Phoenix のコマンドライン クライアントに接続します。IDEAにもPhoenixクライアントが組み込まれていますが、バグが多く使い勝手が悪いので
、Phoenixに付属のコマンドラインクライアントの方が使いやすいと思います。また、実行する SQL ステートメントは多くありません。コマンド ライン クライアントで
十分です。

/opt/phoenix-server/bin/sqlline.py localhost

ここに画像の説明を挿入

最初の接続をお待ちください

ここに画像の説明を挿入

アウト、とてもつながっている

1.5.3 ロジックライブラリとデータテーブルの作成
1 ロジックライブラリを作成する

データを格納するには、MySQL を操作するのと同じように、最初にロジック ライブラリを作成し、次にデータ テーブルを定義する必要があります。Phoenix のコマンド ライン クライアントで、まずコマンドを実行してロジック ライブラリを作成します。

CREATE SCHEMA hospital;

USE hospital;

ここに画像の説明を挿入

2 データテーブルを作成してデータをインポートする

このコースの git にはデータベース スクリプトと SQL ファイルがあり、この SQL ファイルのステートメントをコピーして Phoenix コマンド ラインに貼り付けて実行できます。

ここに画像の説明を挿入

一気に貼り付けるだけ

ここに画像の説明を挿入

1350回線

ここに画像の説明を挿入

完了するのを待つ [インデックスの作成に時間がかかる]

ここに画像の説明を挿入

OK、完了です。終了します

ここに画像の説明を挿入

1.5.4 JDBC接続情報の設定

プロジェクトのインポートはこちら

ここでは、教師が API を使用してデモンストレーションを行いました。

ここに画像の説明を挿入

プロジェクトを自分のディレクトリにコピーします

ここに画像の説明を挿入

インポートして IDEA で開く

ここに画像の説明を挿入

ここに画像の説明を挿入

独自の Maven 構成を使用する

ここに画像の説明を挿入

かなり新しい、SpringBoot バージョン 2.7.2

ここに画像の説明を挿入

プロジェクトのビルドが完了するまで待ちます

ここに画像の説明を挿入

使用されている JDK バージョンは、以前にインストールした 15 であることに注意してください。

ここに画像の説明を挿入

ビルド完了

ここに画像の説明を挿入

ここで、サーバー (仮想マシン IP) に変更する必要があります。

ここに画像の説明を挿入

別のJavaプロジェクトがあり、これはWeChatアプレットのインターフェースの背景であり、Web側のインターフェースの背景もあります。

ここに画像の説明を挿入

また、IDEAを使用してインポートして開きます

ここに画像の説明を挿入

ここに画像の説明を挿入

また、ローカルのmaven構成を使用してください

ここに画像の説明を挿入

上記の場所を同じように変更するだけです

ここに画像の説明を挿入

このプロジェクトの springboot バージョンは 2 ポイント高い

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

よし、それだけだ。

おすすめ

転載: blog.csdn.net/weixin_44226181/article/details/130480270