Rテーブル演算子は通常、データベースに格納されているデータに対しアクセスおよび変更を行ない、割り当てられているタスクを実行します。
以下のセクションに、Rテーブル演算子開発者に使用可能なFNC関数について説明します。これらの関数では、Rスクリプトでデータベースからのデータおよびメタデータに対しアクセスおよび更新を行なうインターフェースが提供されています。
以下のカテゴリの関数が提供されています。
データ操作のための関数
テーブル演算子の場合、入力ストリームと出力ストリームの行には、以下のようなイテレータ モデルに従ってアクセスします。
- 入力ストリームと出力ストリームをオープンします。
- 入力ストリームの行を順次読み取ります。
- 現在の入力行の列に直接アクセスします。
- 現在の出力行の列を更新します。
- 出力行を順次書き込みます。
- ストリームをクローズします。
以下の関数はイテレータ モデルをサポートし、入力ストリームと出力ストリームの操作に使用されます。これらの関数により、データベースのデータへのアクセスおよび変更が可能になります。関数は、入力ストリームと出力ストリームの書式の指定を設定および取得することもできます。
C保護モードのテーブル演算子と同様に、バッファは行の読み取りと書き込みに使用されます。読み取り行が発行されると、行の全体のバッファが読み取られ、次の読み取り行の発行時にそのバッファから行が取得されます。バッファの最後に達すると、新しいバッファが読み取られます。同様に、バッファは書き込みに使用されます。バッファのサイズは構成可能で、cufconfig GDO(CServerMemSize)で設定できます。
機能 | 説明 |
---|---|
tdr.Open | 入力ストリームまたは出力ストリームをオープンします。 |
tdr.Close | 入力ストリームまたは出力ストリームをクローズします。 |
tdr.Read | 入力ストリームから行を読み取ります。 |
tdr.Write | 出力ストリームに行を書き込みます。 |
tdr.TblRead | 入力ストリームをRデータ フレームに読み取り、データ フレームを返します。 |
tdr.TblWrite | Rデータ フレームを出力ストリームに書き込みます。 |
tdr.GetAttributeByNdx | 現在の入力ストリーム行から個々の属性を取得します。 |
tdr.SetAttributeByNdx | 現在の出力ストリーム行の個々の属性の値を設定します。 |
tdr.GetStreamCount | 入力ストリームと出力ストリームの数を取得します。 |
tdr.GetFormat | 指定ストリームの書式に関する情報を取得します。 |
tdr.SetFormat | 指定ストリームに対して書式の属性を設定します。 |
tdr.DisableCoGroup | 複数の入力ストリームを処理するテーブル演算子のcogroup機能を無効にします。 |
メタデータ操作のための関数
テーブル演算子の場合、問合わせ呼び出し時に渡される一部のメタデータには、コントラクト関数と演算子からアクセスできます。このメタデータは、問合わせの一部として指定されなかった場合は、コントラクト関数で設定できます。また、コントラクト関数は、演算子の実行にアクセス可能なコンテキストを設定できます。
以下の関数は、このメタデータおよび契約コンテキストのアクセスと設定に使用されます。
機能 | 説明 |
---|---|
tdr.GetColCount | ストリーム中の列数を取得します。 |
tdr.GetColDef | 入力や出力ストリームのスキーマを取得します。 |
tdr.SetOutputColDef | 出力ストリームのスキーマを設定します。 |
tdr.GetCountHashBy | 指定入力ストリームのHASH BY句内の列数を取得します。 |
tdr.GetHashByDef | 指定入力ストリームに対しHASH BY句の列を取得します。 |
tdr.SetHashByDef | 指定入力ストリームに対しHASH BY指定を設定します。 |
tdr.GetCountLocalOrderBy | 指定する入力ストリームのLOCAL ORDER BY句内の列数を取得します。 |
tdr.GetLocalOrderByDef | 列の並べ替え、NULLS FIRST/NULLS LAST標識を含む、指定入力ストリームのLOCAL ORDER BY句の列を取得します。 |
tdr.SetLocalOrderByDef | 指定入力ストリームに対し整列指定を設定します。 |
tdr.GetContractLength | 契約コンテキストの長さを取得します。 |
tdr.GetContractDef | 契約コンテキストを取得します。 |
tdr.SetContractDef | 契約コンテキストを設定します。 |
tdr.GetAsClauseName | 指定ストリームに対して別名(AS name)および関連付けられている長さを取得します。 |
tdr.IsDimension | ストリームがDIMENSION入力ストリームかどうかを確認します。 |
tdr.SetError | テーブル演算子を起動する問合わせが実行され、エラーが発生した場合にコンソールに表示されるエラー コードおよびメッセージを設定します。 |
USING句パラメータにアクセスするための関数
USING句を使用して、パラメータをキー値ペアとしてコントラクト関数およびテーブル演算子に渡すことができます。以下の関数は、コントラクト関数およびテーブル演算子のこれらのペアにアクセスするために使用されます。
機能 | 説明 |
---|---|
tdr.GetCustomKeyCount | USING句のキー数を取得します。 |
tdr.GetCustomValuesOf | 指定キーと関連付けられている値を取得します。 |
tdr.GetCustomValuesAt | 指定インデックスのキーと関連付けられている値を取得します。 |
tdr.GetCustomKeyAt | 指定インデックスのキーを取得します。 |
LOB操作のための関数
以下の関数は、Rテーブル演算子からのLOBに対するアクセスと変更に使用されます。これらの関数を使用して、Rテーブル演算子は入力ストリームからLOBを読み取り、出力ストリームに対しLOBを作成できます。
機能 | 説明 |
---|---|
tdr.LobOpen_CL | 読み取るLOBをオープンします。 |
tdr.LobClose | 入力LOBをクローズします。 |
tdr.GetLobLength | 入力LOBの長さを取得します。 |
tdr.LobRead | LOBを読み取ります。 |
tdr.LobCol2Loc | データを現在の出力行のLOBに追加するために必要な出力LOBロケータを計算します。 |
tdr.LobAppend | 生データを指定出力ロケータと関連付けられている出力LOBの最後に追加します。 |
列定義を設定するための関数
以下の関数は、サポート対象の各データ型のリストを生成するために使用されます。これらのリストをtdr.SetOutputColDef関数に渡すことができます。これによりリストを迅速かつ効率的な方法で定義できるようになり、tdr.SetOutputColDefへの呼び出しで使用される各リストおよびすべてのリストを明示的に定義する必要がなくなります。
一部の関数は、特定のデータ型に必要なデフォルトの属性を返すだけです。その他の関数は、長さや文字型などのデータ型に関する特定のプロパティを、関数に渡されたパタラメータに基づいて示します。
機能 | 説明 |
---|---|
tdr.Char | CHAR_DTデータ型の列定義を取得します。 |
tdr.VarChar | VARCHAR_DTデータ型の列定義を取得します。 |
tdr.Clob | CLOB_REFERENCE_DTデータ型の列定義を取得します。 |
機能 | 説明 |
---|---|
tdr.Byte | BYTE_DTデータ型の列定義を取得します。 |
tdr.VarByte | VARBYTE_DTデータ型の列定義を取得します。 |
tdr.Blob | BLOB_REFERENCE_DTデータ型の列定義を取得します。 |
機能 | 説明 |
---|---|
tdr.ByteInt | BYTEINT_DTデータ型の列定義を取得します。 |
tdr.SmallInt | SMALLINT_DTデータ型の列定義を取得します。 |
tdr.Integer | INTEGER_DTデータ型の列定義を取得します。 |
tdr.BigInt | BIGINT_DTデータ型の列定義を取得します。 |
tdr.Decimal1 | DECIMAL1_DTデータ型の列定義を取得します。 |
tdr.Decimal2 | DECIMAL2_DTデータ型の列定義を取得します。 |
tdr.Decimal4 | DECIMAL4_DTデータ型の列定義を取得します。 |
tdr.Decimal8 | DECIMAL8_DTデータ型の列定義を取得します。 |
tdr.Decimal16 | DECIMAL16_DTデータ型の列定義を取得します。 |
tdr.Float | REAL_DTデータ型の列定義を取得します。 |
tdr.Real | REAL_DTデータ型の列定義を取得します。 |
機能 | 説明 |
---|---|
tdr.Date | DATE_DTデータ型の列定義を取得します。 |
tdr.Time | TIME_DTデータ型の列定義を取得します。 |
tdr.TimeWTZ | TIME_WTZ_DTデータ型の列定義を取得します。 |
tdr.Timestamp | TIMESTAMP_DTデータ型の列定義を取得します。 |
tdr.TimestampWTZ | TIMESTAMP_WTZ_DTデータ型の列定義を取得します。 |
tdr.IntervalYear | INTERVAL_YEAR_DTデータ型の列定義を取得します。 |
tdr.IntervalYTM | INTERVAL_YTM_DTデータ型の列定義を取得します。 |
tdr.IntervalMonth | INTERVAL_MONTH_DTデータ型の列定義を取得します。 |
tdr.IntervalDay | INTERVAL_DAY_DTデータ型の列定義を取得します。 |
tdr.IntervalDTH | INTERVAL_DTH_DTデータ型の列定義を取得します。 |
tdr.IntervalDTM | INTERVAL_DTM_DTデータ型の列定義を取得します。 |
tdr.IntervalDTS | INTERVAL_DTS_DTデータ型の列定義を取得します。 |
tdr.IntervalHour | INTERVAL_HOUR_DTデータ型の列定義を取得します。 |
tdr.IntervalHTM | INTERVAL_HTM_DTデータ型の列定義を取得します。 |
tdr.IntervalHTS | INTERVAL_HTS_DTデータ型の列定義を取得します。 |
tdr.IntervalMinute | INTERVAL_MINUTE_DTデータ型の列定義を取得します。 |
tdr.IntervalMTS | INTERVAL_MTS_DTデータ型の列定義を取得します。 |
tdr.IntervalSecond | INTERVAL_SECOND_DTデータ型の列定義を取得します。 |
Rテーブル演算子を開発するための追加関数
Rテーブル演算子の開発時には、以下の追加関数も有用である場合があります。
機能 | 説明 |
---|---|
tdr.ampinfo | テーブル演算子が実行されているAMPおよびノードに関する情報を返します。 |
tdr.dbsinfo | ユーザー アカウントやユーザー名など、現在実行しているテーブル演算子またはコントラクト関数に関する情報を返します。 |
tdr.getnodedata | すべてのオンラインAMP vprocについてノードIDとAMP IDを返し、テーブル演算子が特定のAMP上で実行するための自己構成を行なえるようにします。 |
tdr.tracestring | SET SESSION FUNCTION TRACE文で設定されたトレース文字列の現在の設定を返します。 |
tdr.tracewrite | CREATE GLOBAL TEMPORARY TRACE TABLE文によって定義された一時トレース テーブルにトレース出力を書き込みます。 |
前提条件
これらの関数を呼び出す前に、以下の文をRスクリプトに含め、TDRパッケージをロードする必要があります。
library(tdr)
用語
Rタイプにはスカラー タイプは含まれません。整数などのスカラー タイプは通常、特定のタイプ(整数)の単位ベクトルとして表わされます。以下のセクションで、タイプの単位ベクトルはタイプのみで指定されます。例えば、整数と文字はそれぞれ、整数の単位ベクトル、文字の単位ベクトルを示します。複数の要素を持つベクトルは、整数ベクトルなどのタイプ ベクトルとして指定されます。