Teradata AppCenter Java SDKには、Teradata AppCenterと共に使用するJavaアプリの構築に役立つAPIが用意されています。
目次
- Teradata AppCenter Java SDKパッケージのダウンロード
- Teradata AppCenter SDKクライアントの初期化
- Teradata AppCenter Java SDKでサポートする公開API
- カスタム アプリのパッケージ化
- ライセンス
Teradata AppCenter Java SDKパッケージのダウンロード
Java SDKパッケージにアクセスするには、Teradataユーザー アカウントが必要です。
- https://access.teradata.comにアクセスしてログインします。
- DOWNLOADS(ダウンロード)で、Update Your Software(ソフトウェアを更新する)を選択します。
- Search Downloads(ダウンロードの検索)で、
teradata-appcenter-java-sdk
を検索します。 - お使いのAppCenterのバージョンに対応するJava SDKをダウンロードします。
Teradata AppCenter SDKクライアントの初期化
Teradata AppCenter Java SDKを使用するには、Teradata AppCenterクライアントを初期化する必要があります。
- クライアントを初期化するには、次のいずれかのメソッドを使用します。
メソッド | コード例 | 考慮事項 |
---|---|---|
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); |
必要なパラメータ
visualize APIには次の2つのパラメータが必要です。
パラメータ | 説明 |
---|---|
data | 視覚化するデータ。これは、query APIのJSON出力、またはカスタムの視覚化のカスタマイズされたデータにできます。 |
tag | アプリ結果の構成の視覚化構成の名前。または、Asterのカスタムの視覚化を使用している場合はNULL。 |
カスタム アプリのパッケージ化
- 次のサンプル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.