JDBCでVantageに接続する方法

著者 [Adam Tworkiewicz](adam.tworkiewicz@teradata.com)
最終更新日 2021年9月8日

:::note warn
警告
本記事はTeradata Corporationのサイト[Getting Started](https://quickstarts.teradata.com/index.html#getting-access-to-vantage)に掲載された内容を抄訳したものです。掲載内容の正確性・完全性・信頼性・最新性を保証するものではございません。正確な内容については、原本をご参照下さい。
また、修正が必要な箇所や、ご要望についてはコメントをよろしくお願いします。
:::

# 概要
このクイックスタートでは、JDBCを使用してTeradata Vantageに接続する方法を説明します。サンプルJDBCプロジェクトを通して説明します。プロジェクト全体はGitHub[https://github.com/Teradata/jdbc-sample-app](https://github.com/Teradata/jdbc-sample-app)で公開されています。


# 前提条件
・Teradata Vantageインスタンスにアクセスします。

::: note info
Vantageの新しいインスタンスが必要な場合は、[Google Cloud](https://qiita.com/ykswi/items/10a382de5fa5a4a42c50)、[Azure](https://qiita.com/ykswi/items/2c30aa1f5413b16c838c)、[AWS](https://qiita.com/ykswi/items/fba559149ad568678d58)のクラウドにVantage Expressという無料版をインストールすることができます。また、[VMware](https://qiita.com/ykswi/items/ebe1d854c38db9bb0f51)、[VirtualBox](https://qiita.com/ykswi/items/ffadaa375add309f2075)、または[UTM](https://qiita.com/ykswi/items/94995954ae723185c2f7)を使用して、ローカルマシン上でVantage Expressを実行することもできます。
:::

・JDKが必要です
・Mavenが必要です

#ドライバのインストール
①	[Teradata JDBC download page](https://downloads.teradata.com/download/connectivity/jdbc-driver)にアクセスし、ドライバをダウンロードします（zipまたはtarを選択できます）。ウェブサイトは、ファイルをダウンロードする前に、ログイン（アカウントをお持ちでない場合は、最初に登録する必要があります）し、ライセンスに同意するように求めます。

②	ドライバを解凍します。

③	ドライバをローカルのMavenリポジトリに追加します。

```:repogitory_driver
mvn install:install-file \
   -Dfile=terajdbc4.jar \
   -DgroupId=com.teradata \
   -DartifactId=terajdbc4 \
   -Dversion=17.10.00.26 \
   -Dpackaging=jar \
   -DgeneratePom=true
```

# mavenプロジェクトに依存関係を追加する
ローカルリポジトリにjarがあるので、Mavenのpomでjarを依存関係として参照することができます。

```:repogitory_dependency
    <dependency>
      <groupId>com.teradata</groupId>
      <artifactId>terajdbc4</artifactId>
      <version>17.10.00.26</version>
    </dependency>
```
![画像1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/58d2c2f1-ff0a-c898-724d-282e1ac645a1.png)

# クエリを送信するコード

::: note info
この手順では、Vantage データベースが localhost のポート 1025 で利用可能であると仮定しています。ラップトップでVantage Expressを実行している場合、VMからホストマシンにポートを公開する必要があります。ポートを転送する方法については、仮想化ソフトウェアのドキュメントを参照してください。
:::

プロジェクトはセットアップされました。あとはドライバをロードし、接続と認証のパラメータを渡し、クエリを実行するだけです。

```java:slow_query.java
package com.teradata.app;

import java.sql.*;

public class App {
    static final String DB_URL = "jdbc:teradata://localhost";
    static final String USER = "dbc";
    static final String PASS = "dbc";
    static final String QUERY = "SELECT * FROM dbc.dbcinfo";

    public static void main(String[] args) {
        App app = new App();
        app.query();
    }

    public void query() {
        Connection conn = null;
        Statement stmt = null;
        ResultSet rs = null;

        // Open a connection
        try {
            conn = DriverManager.getConnection(DB_URL, USER, PASS);
            stmt = conn.createStatement();
            rs = stmt.executeQuery(QUERY);

            // Extract data from result set
            while (rs.next()) {
                System.out.println(String.format("setting: %s, value: %s", rs.getString(1), rs.getString(2)));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            if (rs != null) {
                try {
                    rs.close();
                } catch (SQLException e) { /* Ignored */}
            }
            if (stmt != null) {
                try {
                    stmt.close();
                } catch (SQLException e) { /* Ignored */}
            }
            if (conn != null) {
                try {
                    conn.close();
                } catch (SQLException e) { /* Ignored */}
            }
        }
    }
}
```
![画像2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2742714/7b952e1f-ddcb-5beb-7177-c86edc4ed057.png)

# まとめ
このクイックスタートでは、JDBCを使用してTeradata Vantageに接続する方法について学びました。最新のJDBCドライバをインストールし、Mavenをビルドツールとして使用したJavaアプリケーションで使用する手順を説明しました。

# さらに詳しく
・[Teradata JDBC Driver Reference](https://teradata-docs.s3.amazonaws.com/doc/connectivity/jdbc/reference/current/frameset.html)

#### Teradata Vantageへのお問合せ
[Teradata Vantage へのお問合せ](https://www.teradata.jp/About-Us/Contact)