Teradata AppCenter Java SDKユーザー ガイド - Teradata AppCenter

Teradata AppCenter Java SDKユーザー ガイド

Product
Teradata AppCenter
Release Number
-NA-
Language
日本語
Last Update
2019-06-18
dita:id
B035-1118
Product Category
Analytical Ecosystem

Teradata AppCenter Java SDKには、Teradata AppCenterと共に使用するJavaアプリの構築に役立つAPIが用意されています。

目次

Teradata AppCenter Java SDKパッケージのダウンロード

Java SDKパッケージにアクセスするには、Teradataユーザー アカウントが必要です。

  1. https://access.teradata.comにアクセスしてログインします。
  2. DOWNLOADS(ダウンロード)で、Update Your Software(ソフトウェアを更新する)を選択します。
  3. Search Downloads(ダウンロードの検索)で、teradata-appcenter-java-sdkを検索します。
  4. お使いのAppCenterのバージョンに対応するJava SDKをダウンロードします。

Teradata AppCenter SDKクライアントの初期化

Teradata AppCenter Java SDKを使用するには、Teradata AppCenterクライアントを初期化する必要があります。

  1. クライアントを初期化するには、次のいずれかのメソッドを使用します。
メソッド コード例 考慮事項
try-with-resources try (AppcenterClient client = new DefaultAppcenterClient()) { // your codes that utilize the client} 文の最後で各リソースを確実に閉じるため、try-with-resources文を推奨します。
try-catch-finally AppcenterClient client = null; try { client = new DefaultAppcenterClient(); // your codes that utilize the client } catch (...) { }finally { client.close(); } リソースが適切に閉じられるようにするために、client.close() in 'finally'ブロックを呼び出すようにしてください。
Initialize AppCenter client with AppContext** AppcenterClient client = null; try { client = new DefaultAppcenterClient(); // your codes that utilize the client } catch (...) { }finally { client.close(); } リソースが適切に閉じられるようにするために、client.close() in 'finally'ブロックを呼び出すようにしてください。

AppContext用の変数

次の変数を使用してAppContextを構築できます。

変数 説明
system データ ソース名 "****-system"
database データベース名 "appcenter-examples"
user データ ソースにアクセスするユーザー名 "user"
password データ ソースにアクセスするパスワード "pass"
catalog Prestoシステムのカタログ "hive"
schema Prestoシステムのスキーマ "default"
JobConfig ジョブ パラメータ {"param1":"value", "param2":"value"}
appConfig アプリ パラメータの定義 {"param1":{"type":"text","default_value":"default","required":false}}
resultConfig 視覚化の構成 {"query1":{"name":"query1","type":"sankey","format":"npath"}}
appCenterBaseUrl AppCenterインスタンス ベースURL "https://appcenter.example.com"

Teradata AppCenter Java SDKでサポートする公開API

Teradata AppCenter Java SDKは次の公開APIをサポートしています。

API 互換性のあるTeradata AppCenterのバージョン
audit AppCenter 1.3 - 1.8
cacheResult AppCenter 1.3 - 1.8
getSystems AppCenter 1.3 - 1.8
log AppCenter 1.3 - 1.8
query AppCenter 1.3 - 1.8
sendNotification AppCenter 1.3 - 1.8
setAppContext AppCenter 1.3 - 1.8
streamResultsFromQuery AppCenter 1.4 - 1.8
visualize AppCenter 1.3 - 1.8

audit API

目的

audit APIは、ユーザー アクティビティなどの重要なイベントをログに記録します。audit APIを使用する前に、AuditParamsを構築する必要があります。

Javaコード例

AuditParamsの構築:

AuditParams auditParams = new AuditParams() 
.auditEvent("TEST") 
.message("Test message") 
.details("this is a test message") 
.result(true) 
.build(); 
`

AuditParamsの使用:

client.audit(auditParams);

cacheResult API

目的

cacheResult APIは、結果を表示したり他のユーザーと共有したりできるように、クエリー結果や視覚化の結果をキャッシュします。cacheResult APIは、文字列またはストリーム(ファイルのようなオブジェクトまたはジェネレータ)のいずれかとして結果を取得します。結果が大きい場合は、ストリームを使用してメモリ消費量を減らすことを推奨します。

ジョブの結果は生成された時点から30日間使用でき、その後有効期限が切れます。rootユーザーはUIの設定からデフォルト値を1~365日の間で変更できます。

Javaコード例

文字列の例:

String queryResult = client.query(query); 
client.cacheResult(queryResult, "application/json");

ストリームの例:

InputStream queryResultStream = client.streamResultsFromQuery(query); 
client.cacheResult(queryResultStream, "application/json");

getSystems API

目的

getSystems APIは、AppCenterから使用可能なシステムの名前を取得します。

Javaコード例

List<String> systemNames = client.getSystems()

log API

目的

log APIは、アプリに関連付けられている情報メッセージまたはエラー メッセージをログに記録します。メッセージは、UIの「開発」から利用できるアプリログに含まれます。

Javaコード例

情報メッセージの例:

Client.log(LogLevel.INFO, message)

エラー メッセージの例:

Client.log(LogLevel.ERROR, message)

query API

目的

query APIは、Teradata Database、Teradata Vantage、Aster Database、Presto、およびHiveシステムに対してクエリーを実行し、結果をJSON文字列として返します。

Javaコード例

String queryResult = client.query(query);

結果の例

次の例では、出力のJSON "columns"セクションに、各列の名前とタイプを示す列メタデータが含まれています。"data"セクションには、クエリーのデータが含まれています。

{
  "queueDuration": 33,
  "queryDuration": 47646,
  "results": [
    {
      "resultSet": true,
      "columns": [
        {
          "name": "issue",
          "type": "varchar"
        },
        {
          "name": "issue_count",
          "type": "bigint"
        }
      ],
      "data": [
        {
          "issue": "APR or interest rate",
          "issue_count": 125
        },
        {
          "issue": "Account opening, closing, or management",
          "issue_count": 804
        },
        ……
      ]
    }
  ]
}

sendNotification API

rootユーザーがUIの設定でEメール アカウントを設定している場合、sendNotification APIは、ジョブとアプリの所有者にEメール通知を送信します。

Javaコード例

client.sendNotification(subject, message);

setAppContext API

目的

setAppContext APIは、既存のクライアント インスタンスのコンテキストを変更します。主に、クライアント コンテキストで新しいシステムを設定するために、getSystems APIと共に使用されます。ただし、他の変数を設定するためにも使用できます。

Javaコード例

AppContext appContext = new AppContext() 
.system(“aster-system”) 
.user("") 
.password("") 
.build(); 
client.setAppContext(appContext);

streamResultsFromQuery API

目的

streamResultsFromQuery APIクエリーは、Teradata Database、Teradata Vantage、Aster Database、Presto、およびHiveシステムに対してクエリーを実行し、結果をInputStreamとして返します。

Javaコード例

InputStream queryResultStream = client.streamResultsFromQuery(query);

結果の例

次の例では、出力のJSON "columns"セクションに、各列の名前とタイプを示す列メタデータが含まれています。"data"セクションには、クエリーのデータが含まれています。

{
  "queueDuration": 33,
  "queryDuration": 47646,
  "results": [
    {
      "resultSet": true,
      "columns": [
        {
          "name": "issue",
          "type": "varchar"
        },
        {
          "name": "issue_count",
          "type": "bigint"
        }
      ],
      "data": [
        {
          "issue": "APR or interest rate",
          "issue_count": 125
        },
        {
          "issue": "Account opening, closing, or management",
          "issue_count": 804
        },
        ……
      ]
    }
  ]
}

visualize API

目的

visualize APIは、Asterの視覚化、NGXの棒グラフおよび折れ線グラフ、およびカスタムの視覚化をサポートしています。カスタムの視覚化では、視覚化アセットをバンドルし、バンドルされたhtmlをアプリにアップロードする必要があります。

visualize APIには、次の2つのインターフェースがあります。

インターフェース 説明 Javaコード例
String query APIの文字列データを使用し、視覚化されたデータをStringで返します。 String visualizedResult = client.visualize(data, “query1”);
InputStream streamResultsFromQuery APIのInputStreamを使用し、視覚化されたデータをInputStreamで返します。 InputStream queryResultStream = client.streamResultsFromQuery(query);
InputStream vizResultStream = client.visualize(queryResultStream, "query1");
client.cacheResult(vizResultStream, "application/json");

必要なパラメータ

visualize APIには次の2つのパラメータが必要です。

パラメータ 説明
data 視覚化するデータ。これは、query APIのJSON出力、またはカスタムの視覚化のカスタマイズされたデータにできます。
tag アプリ結果の構成の視覚化構成の名前。または、Asterのカスタムの視覚化を使用している場合はNULL。

カスタム アプリのパッケージ化

  1. 次のサンプルDockerファイルを使用して、カスタム アプリ用にDockerイメージを構築します。
FROM anapsix/alpine-java:jre8 
ARG JAR_FILE
LABEL tags="query1,query2" 
ENV TESTOUTDIR /tmp 
COPY sampleApp-1.0.0.jar sampleApp-1.0.0.jar 
CMD ["java","-jar", "sampleApp-1.0.0.jar"]

タグ内の各値は、アプリの視覚化構成の名前であり、アプリに関連付けられた一意の視覚化を識別します。

タグが複数ある場合は、末尾または先頭に空白を使用せずに、単語全体をカンマで区切ったリストとして指定する必要があります。

AppCenterはサンプルDockerファイルを使用して、設定に2つの視覚化を自動的に追加します。一方の視覚化はquery1という名前で、もう一方はquery2という名前です。各視覚化設定に対して、視覚化の種類と形式を選択します。

例:

このアプリを実行すると、AppCenterは次の2つの視覚化を生成します。

Query1: Sankeyタイプ、NPath形式

Query2: Barタイプ、デフォルト形式

ライセンス

Copyright (C) 2016-2019 by Teradata Corporation.