リッチ履歴データベースの作成
このトピックでは、Oracleデータベース接続の指定およびリッチ履歴データベースを作成するチャネルの選択に役立つ情報を示します。このデータベースを使用して、台帳のアクティビティのアナリティクス・レポートおよびビジュアライゼーションを作成します。
リッチ履歴データベースとは
リッチ履歴データベースは、Oracle Blockchain Platform外部のもので、選択したチャネル上のブロックチェーン台帳のトランザクションに関するデータが含まれています。このデータベースを使用して、台帳の活動に関するアナリティクス・レポートおよびビジュアライゼーションを作成します。
たとえば、リッチ履歴データベースを使用して、一定の期間内のすべてのカスタマの銀行の平均残高を確認したり、卸売業者から小売業者への商品の出荷にかかった時間を確認したりするアナリティクスを作成できます。
内部ではOracle Blockchain PlatformはHyperledger Fabric履歴データベースを使用して台帳を管理し、コンソールで台帳トランザクション情報を表示します。この履歴データベースにアクセスできるのはチェーンコードのみで、分析的な問合せのデータ・ソースとしてHyperledger Fabric履歴データベースを公開することはできません。リッチ履歴データベースでは、外部Oracleデータベースが使用され、チャネルでコミットされるすべてのトランザクションに関する詳細が多く含まれています。このレベルのデータ・コレクションでは、リッチ履歴データベースがアナリティクス用の優れたデータ・ソースになります。リッチ履歴データベースによって収集されるデータの詳細は、「リッチ履歴データベースの表と列」を参照してください。
リッチ履歴データベースを作成するには、Oracle Autonomous Data WarehouseやOracle Database Cloud ServiceとOracle Cloud Infrastructureの組合せなどのOracleデータベースのみ使用できます。Oracle Blockchain Platformのコンソールを使用して、Oracleデータベースへのアクセスと書込みを行うための接続文字列と資格証明を指定します。指定する資格証明はデータベースの資格証明で、Oracle Blockchain Platformでは管理されないことに注意してください。接続を作成した後、リッチ履歴データベースに含める台帳データが含まれるチャネルを選択します。「リッチ履歴データベースの有効化と構成」を参照してください。
Oracle Analytics CloudやOracle Data Visualization Cloud Serviceなどの任意のアナリティクス・ツールを使用して、リッチ履歴データベースにアクセスし、アナリティクス・レポートまたはデータ・ビジュアライゼーションを作成できます。
Oracle Database Cloud Service接続文字列の作成
リッチ履歴データベースで必要な接続文字列を構築するには、Oracle Cloud InfrastructureにデプロイされたOracle Database Cloud Serviceから情報を収集する必要があります。また、ポート1521でデータベースへのアクセスを有効化する必要もあります。
Oracle Database Cloud Service情報の検索と記録
Oracle Database Cloud Serviceへの接続を作成するために必要な情報は、Oracle Cloud Infrastructureコンソールで取得できます。
-
インフラストラクチャ・コンソールから左上隅にあるナビゲーション・メニューをクリックし、「データベース」をクリックします。
-
接続するデータベースを見つけ、パブリックIPアドレスを記録します。
-
接続先のデータベースの名前をクリックし、次のフィールドの値を記録します:
-
一意のデータベース名
-
ホスト・ドメイン名
-
ポート
-
-
このデータベースからの読取り権限を持つデータベース・ユーザーのユーザー名およびパスワードを調べ、ノートにとります。たとえば、ユーザーSYSTEMなどです。
ポート1521によるデータベース・アクセスの有効化
リッチ履歴データベースがポート1521を介してデータベースにアクセスできるようにするイングレス・ルールを追加します。
-
Oracle Cloud Infrastructureホームページで、ナビゲーション・アイコンをクリックし、「データベース」の下の「DBシステム」をクリックします。
-
接続するデータベースをクリックします。
-
「仮想クラウド・ネットワーク」リンクをクリックします。
-
適切なサブネットに移動し、「セキュリティ・リスト」の下の「<ターゲット・データベース>のデフォルト・セキュリティ・リスト」をクリックします。
「セキュリティ・リスト」ページが表示されます。
-
「すべてのルールの編集」をクリックします。
-
次の設定を使用してイングレス・ルールを追加し、パブリック・インターネットからの受信トラフィックがこのデータベース・ノードのポート1521に到達できるようにします:
-
ソースCIDR: 0.0.0.0/0
-
IPプロトコル: TCP
-
ソース・ポート範囲: すべて
-
宛先ポート範囲: 1521
-
次のポートでTCPトラフィックを許可: 1521
-
接続文字列の構築
Oracleデータベースへのアクセスを有効にした後、収集した情報を使用して、リッチ履歴の構成ダイアログで接続文字列を構築します。
次のように接続文字列を作成します: <publicIP>:<portNumber>/<database unique name>.<host domain name>
たとえば、123.213.85.123:1521/CustDB_iad1vm.sub05031027070.customervcnwith.oraclevcn.comです
リッチ履歴データベースの有効化と構成
コンソールを使用して、データベース接続情報を指定し、リッチ履歴データベースに書き込むチェーンコード台帳データがあるチャネルを選択します。デフォルトでは、チャネルでリッチ履歴データベースにデータを書き込むことはできません。
次の点に注意してください。
-
各ブロックチェーン・ネットワーク・メンバーは、それぞれリッチ履歴データベースを構成します。
-
Oracleデータベースを使用する必要があります。他のデータベース・タイプはサポートされません。
- リッチ履歴情報の格納に使用するOracleデータベースの接続情報および資格証明情報を入力します。
- リッチ履歴データベースに書き込むチェーンコード・データを含むチャネルで、リッチ履歴を有効にします。
リッチ履歴データベースにデータを書き込むチャネルの選択
チェーンコード台帳データをリッチ履歴データベースに書き込むためにチャネルを追加したり、チャネルがリッチ履歴データベースにデータを書き込むことを停止できます。
リッチ履歴データベースの表と列
リッチ履歴データベースには、チャネルごとに履歴、状態および最新の高さの3つの表が含まれています。チェーンコードの台帳トランザクションに関するアナリティクスを作成するときは、履歴表および状態表を問い合せます。
履歴表
<instanceName><channelName>_hist表には、台帳履歴が含まれています。この表のデータは、チェーンコードID、使用されているキー、トランザクションが有効であったかどうか、キーに割り当てられている値などを示します。
valueおよびvalueJson列は、相互に排他的に使用されることに注意してください。キー値が有効なjsonの場合、その値はvalueJson列に設定されます。それ以外の場合は、値はvalue列に設定されます。valueJson列はデータベースでJSON列として設定されます。つまり、ユーザーが通常のOracle JSON固有の拡張機能を使用してその列を問い合せることができるということです。
列 | データ型 |
---|---|
chaincodeId | VARCHAR2 (256) |
key | VARCHAR2 (1024) |
txnIsValid | NUMBER (1) |
value | VARCHAR2 (4000) |
valueJson | CLOB |
blockNo | NUMBER NOT NULL |
txnNo NUMBER | NOT NULL |
txnId | VARCHAR2 (128) |
txnTimestamp | TIMESTAMP |
txnIsDelete | NUMBER (1) |
状態表
<instanceName><channelName>_state表には、状態データベースからレプリケートされたデータ値が含まれています。台帳の状態に関するアナリティクスを作成する場合、状態表に問合せを行います。
valueおよびvalueJson列は、相互に排他的に使用されることに注意してください。キー値が有効なjsonの場合、その値はvalueJson列に設定されます。それ以外の場合は、値はvalue列に設定されます。valueJson列はデータベースでJSON列として設定されます。つまり、ユーザーが通常のOracle JSON固有の拡張機能を使用してその列を問い合せることができるということです。
列 | データ型 |
---|---|
chaincodeId | VARCHAR2 (256) |
key | VARCHAR2 (1024) |
value | VARCHAR2 (4000) |
valueJson | CLOB |
blockNo | NUMBER |
txnNo | NUMBER |
最新の高さの表
<instanceName><channelName>_last表は、Oracle Blockchain Platformで内部的に使用され、リッチ履歴データベースに記録されたブロックの高さを追跡します。リッチ履歴データベースが最新か、すべてのチェーンコード・トランザクションがリッチ履歴データベースに記録されたかを判断するものです。アナリティクスのためにこのデータベースを問い合せることはできません。