第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 以降がインストールされている。
手順
テキストエディターで 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>
Maven プロジェクトを作成し、DDL ファイルから仮想データベース定義をインポートします。以下に例を示します。
vdb-project ├── pom.xml └── src └── main └── vdb └── vdb.ddl
仮想データベースの構造を指定する 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 の定義については、本書では扱いません。
仮想データベースアーティファクトをビルドします。Maven プロジェクトのルートフォルダーにターミナルウィンドウを開き、以下のコマンドを入力します。
mvn clean install
このコマンドは、ターゲットリポジトリーに
${project.name}-$2020.Q1.vdb
ファイルを生成します。以下のコマンドを入力して、アーティファクトをリモートリポジトリーにデプロイします。
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 形式のカスタムリソースファイルの作成を理解している。
手順
-
テキストエディターを開き、仮想化の名前を持つファイルを作成して、拡張子
.yaml
で保存します(例:dv-customer.yaml
)。 情報を追加して、カスタムリソースの種類、名前、およびソースを定義します。以下のアノテーションが付けられる例は、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
CR YAML ファイルの作成後に、Data Virtualization Operator を実行して仮想データベースを OpenShift にデプロイできます。
CR で Data Virtualization Operator を実行し、仮想データベースを生成し、これを OpenShift にデプロイします。