17.00 - 17.05 - 手順 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQL外部ルーチン プログラミング

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Published
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1147-170K-JPN
Language
日本語 (日本)

以下に、Java UDFの開発、コンパイル、インストール、および呼び出しの手順の概要を示します。各手順の詳細については、後に続くセクションを参照してください。

  1. UDFのJavaソース コードをデータベース外で記述、テスト、およびデバッグし、結果のクラスをJARまたはZIPファイル(合わせてアーカイブ ファイルと呼ぶ)に配置します。
  2. SQLJ.INSTALL_JAR外部ストアド プロシージャを呼び出してアーカイブ ファイルとクラスをデータベースに登録し、SQL識別子をJARまたはZIPファイルに提供します。
    .zip拡張子を持つファイルは.jarファイルとして扱われ、JARオブジェクトとしてデータベースに登録されます。
  3. UDFに必要なオペレーティング システム サービスへのアクセス レベルを判別します。
    UDFのアクセス 結果
    ローカル ファイルにアクセスせず、特別な権限を必要とする制限アクションを実行しない。 UDFは、Javaハイブリッド サーバーのスレッドとして保護実行モードで実行できます。

    Teradata Databaseは、各ノードに対して1つのJavaハイブリッド サーバーを作成し、そのサーバーはノード上のすべてのAMPとPEに対して複数のJava外部ルーチンのスレッドを実行します。

    セキュリティ上の観点から、ハイブリッド サーバーとそのすべてのリソース(共有マップ ファイルやイベントなど)は、オーナーおよびTeradata Databaseのインストール プロセスが作成するローカルのオペレーティング システムのユーザーとして'tdatuser'を使用します。

    普通のオペレーティング システムのユーザーが権限を持つローカル ファイルやアクションに対するアクセスと実行を行なう。
    特別な権限を必要とする特定のリソースに対するアクセスを必要とする。 CREATE AUTHORIZATIONまたはREPLACE AUTHORIZATIONを使用することによって、特定のネイティブ オペレーティング システム ユーザーを識別するコンテキストを作成します。そのユーザーは、その許可の下でUDFを自身のセキュア サーバーを用いることにより、UDFでリソースにアクセス可能になるようなユーザーです。
  4. Java UDFに関する特定の情報を提供するオプションを持つCREATE FUNCTIONまたはREPLACE FUNCTIONを使用します。
    オプション 説明
    LANGUAGE JAVA UDFのソース コード言語を識別します。
    PARAMETER STYLE JAVA パラメータ スタイルを示します。
    EXTERNAL NAME UDFがSQL文で呼びされる際に、実行されるJARまたはZIPファイルの登録名、JARまたはZIPファイル内のJavaクラス、およびクラス内のJavaメソッドを提供します。
    EXTERNAL SECURITY (オプション) UDFの実行を、前の手順でCREATE AUTHORIZATIONまたはREPLACE AUTHORIZATION文によって作成されたコンテキストと関連付けます。
  5. UDFが正しく動作することが確認できるまで、UDFをテストします。
  6. GRANTを使用して、そのUDFの使用を許可されているユーザーに権限を付与します。