第4章 Maven アーティファクトとしての仮想データベースの作成


Teiid Maven プラグインを使用して DDL ファイルを Maven アーティファクトに変換できます。DDL ファイルで仮想データベースの構造を定義し、ファイルを使用してアーティファクトを生成し、Maven リポジトリーにデプロイします。その後、Data Virtualization Operator はアーティファクトを Maven リポジトリーから OpenShift プロジェクトにデプロイできます。

これは、高レベルの柔軟性を提供する高度な手法で、複雑なプロジェクトに適しています。この方法では、1 つ以上の仮想データベースをインポートして、設計に組み込むマルチモジュールの Maven プロジェクトを作成できます。

pom.xml ファイルで Teiid プラグインの使用を指定します。pom.xml ファイルで、他の Maven 依存関係を定義することもできます。ビルドを実行すると、プラグインはファイルを読み取り、その内容を解決します。

Maven アーティファクトとして仮想データベースを作成する利点
  • 仮想データベースや他の設定を表す DDL コード間の柔軟性の明確化。
  • 複数の環境へのデプロイメントを容易にします。
  • 仮想データベースレベルでのバージョン管理を提供します。
  • 仮想データベースを、一貫した方法でプロジェクトおよびチーム間で共有できるようにします。
  • 継続的インテグレーションおよび継続的デリバリー(CI/CD)のワークフローをサポートします。
仮想データベースを Maven アーティファクトとして作成するデメリット
  • Maven の作業知識が必要です。

前提条件

  • 互換性のあるデータソースがあり、OpenShift クラスターがアクセスできる。
  • pom.xml ファイルを作成し、仮想データベースを構築するために必要な依存関係を指定する方法を把握している。
  • ログイン認証情報など、データソースの接続設定に関する情報が必要です。
  • Data Virtualization Operator は、仮想データベースのビルド依存関係が含まれる Maven リポジトリーにアクセスできます。
  • Maven 3.2 以降がインストールされている。

手順

  1. テキストエディターで POM ファイルを作成し、ビルドの依存関係を定義します。以下に例を示します。

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
      <modelVersion>4.0.0</modelVersion>
      <groupId>org.teiid</groupId>
      <artifactId>dv-customer</artifactId>
      <name>dv-customer</name>
      <description>Demo project to showcase maven based vdb</description>
      <packaging>vdb</packaging>
      <version>1.0</version>
    
      <build>
        <plugins>
          <plugin>
            <groupId>org.teiid</groupId>
            <artifactId>vdb-plugin</artifactId>
            <version>1.2.0</version>
            <extensions>true</extensions>
            <executions>
              <execution>
                <goals>
                  <goal>vdb</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </project>
  2. Maven プロジェクトを作成し、DDL ファイルから仮想データベース定義をインポートします。以下に例を示します。

    vdb-project
    ├── pom.xml
    └── src
        └── main
            └── vdb
                └── vdb.ddl
  3. 仮想データベースの構造を指定する DDL ファイルを作成し、プロジェクトの /src/main/vdb ディレクトリーに .ddl エクステンションで保存します。たとえば、vdb.ddlです。

    以下の例は、postgreSQL データソースを使用する仮想データベースの DDL ファイルのサンプルを示しています。

    例: vdb.ddl

    CREATE DATABASE customer OPTIONS (ANNOTATION 'Customer VDB');
    USE DATABASE customer;
    
    CREATE FOREIGN DATA WRAPPER postgresql;
    CREATE SERVER sampledb TYPE 'NONE' FOREIGN DATA WRAPPER postgresql;
    
    CREATE SCHEMA accounts SERVER sampledb;
    CREATE VIRTUAL SCHEMA portfolio;
    
    SET SCHEMA accounts;
    IMPORT FOREIGN SCHEMA public FROM SERVER sampledb INTO accounts OPTIONS("importer.useFullSchemaName" 'false');
    
    SET SCHEMA portfolio;
    
    CREATE VIEW CustomerZip(id bigint PRIMARY KEY, name string, ssn string, zip string) AS
       SELECT c.ID as id, c.NAME as name, c.SSN as ssn, a.ZIP as zip
       FROM accounts.CUSTOMER c LEFT OUTER JOIN accounts.ADDRESS a
       ON c.ID = a.CUSTOMER_ID;

    DDL を使用して仮想データベースを定義する方法の詳細は、『Data Virtualization Reference』の「 DDL metadata for schema objects 」を参照してください。完全な DDL の定義については、本書では扱いません。

  4. 仮想データベースアーティファクトをビルドします。Maven プロジェクトのルートフォルダーにターミナルウィンドウを開き、以下のコマンドを入力します。

    mvn clean install

    このコマンドは、ターゲットリポジトリーに ${project.name}-$2020.Q1.vdb ファイルを生成します。

  5. 以下のコマンドを入力して、アーティファクトをリモートリポジトリーにデプロイします。

    mvn clean install deploy

Maven リポジトリーで仮想データベースアーティファクトが利用可能になった後に、YAML ベースのカスタムリソースを使用して仮想データベースを OpenShift にデプロイできます。YAML を使用して仮想データベース Maven アーティファクトをデプロイするためのカスタムリソースを作成する方法は、「Maven アーティファクトをデプロイするためのカスタムリソース(CR)の作成」 を参照してください。

Data Virtualization Operator を使用して仮想データベースをデプロイする方法は、6章Data Virtualization Operator の実行による仮想データベースのデプロイ を参照してください。

4.1. Maven アーティファクトをデプロイするためのカスタムリソース(CR)の作成

Maven アーティファクトとして作成する仮想化をデプロイする前に、Maven リポジトリーの場所を定義する CR を作成する必要があります。仮想化をデプロイする準備ができたら、この CR を Data Virtualization Operator に指定します。

前提条件

  • 4章Maven アーティファクトとしての仮想データベースの作成 の説明に従って仮想化を作成している。
  • Data Virtualization Operator がアクセスできる Maven リポジトリーに仮想化をデプロイしている。
  • データソースにアクセスするためのログイン認証情報がある。
  • YAML 形式のカスタムリソースファイルの作成を理解している。

手順

  1. テキストエディターを開き、仮想化の名前を持つファイルを作成して、拡張子 .yaml で保存します(例: dv-customer.yaml )。
  2. 情報を追加して、カスタムリソースの種類、名前、およびソースを定義します。以下のアノテーションが付けられる例は、CR に含まれるコンテンツに関するガイダンスを示しています。

    dv-customer.yaml

    apiVersion: teiid.io/v1alpha1
    kind: VirtualDatabase
    metadata:
      name: dv-customer
    spec:
      replicas: 1
      env:
      - name: SPRING_DATASOURCE_SAMPLEDB_USERNAME 1
      value: user
      - name: SPRING_DATASOURCE_SAMPLEDB_PASSWORD
      value: mypassword
      - name: SPRING_DATASOURCE_SAMPLEDB_DATABASENAME
      value: sampledb
      - name: SPRING_DATASOURCE_SAMPLEDB_JDBCURL 2
      value: jdbc:postgresql://postgresql/$(SPRING_DATASOURCE_SAMPLEDB_DATABASENAME)
      resources:
        memory: 1024Mi
        cpu: 2.0
      build:
        source:
          maven: com.example:customer-vdb:1.0.0:vdb 3
        mavenRepositories: 4
          central: https://repo.maven.apache.org/maven2

    1
    データソースにサインインするための認証情報を指定します。この例では、CR 内で定義される認証情報を示していますが、実稼働環境ではシークレットを使用して認証情報をプレーンテキストで公開するのではなく認証情報を指定します。シークレットに認証情報を追加する方法は、以下を参照してください。
    2
    データソースに接続するための URL を指定します。
    3
    groupId、artifactId、および version(GAV)コーディネートを指定して、仮想データベースの Maven の場所を指定します。
    4
    プライベート Maven リポジトリーを使用している場合は、その URL を指定します。

CR YAML ファイルの作成後に、Data Virtualization Operator を実行して仮想データベースを OpenShift にデプロイできます。

CR で Data Virtualization Operator を実行し、仮想データベースを生成し、これを OpenShift にデプロイします。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.