B Pigナレッジ・モジュール
この付録では、Pigナレッジ・モジュールについて説明します。
この付録の内容は次のとおりです。
LKM File to Pig
このKMは、データをファイルからPigにロードします。
サポートされているデータ形式は次のとおりです。
-
区切り
-
JSON
-
Pigバイナリ
-
テキスト
-
Avro
-
Trevni
-
カスタム
データはローカル・ファイル・システムまたはHDFSにロードおよび書込みできます。
次の表は、LKM File to Pigのオプションについて説明します。
表B-1 LKM File to Pig
オプション | 説明 |
---|---|
ストレージ関数 |
データをロードするのに使用されるストレージ関数。 データをロードするのに使用されるストレージ関数を選択します。 |
複合フィールドのスキーマ |
カンマ(,)で区切られた単純/複合フィールドのpigスキーマ。 pigスキーマ形式でフィールドのデータ型を再定義します。このオプションは、主にデータ・ストアの属性のデフォルトのデータ型変換を上書きするためのものです。たとえば、PO_NO:int,PO_TOTAL:long MOVIE_RATING:{(RATING:double,INFO:chararray)}のようにします。ここで定義されるフィールドの名前はデータ・ストアの属性名と一致している必要があります。 |
関数クラス |
データをロードするストレージ関数として使用するクラスの完全修飾名。 データをロードするストレージ関数として使用するクラスの完全修飾名を指定します。 |
関数のパラメータ |
カスタム関数に必要なパラメータ。 ローダー関数で必要なパラメータを指定します。 たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります ここで、最初の3つの引数はパラメータで、-rootElement MovieStore -tableName movie -schemaのように指定できます。 各要素の意味は次のとおりです。 MusicStore - xmlのルート要素 movie - IDや名前といった子要素をラップする要素 3つ目の引数はpigスキーマのデータの表現です。 パラメータの名前は任意であり、パラメータの数はいくつあってもかまいません。 |
オプション |
ストレージ関数に必要な追加のオプション。 ストレージ関数に必要な追加のオプションを指定します。 たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります 最後の引数オプションは-namespace com.imdb -encoding utf8のように指定できます |
Jar |
ストレージ関数クラスおよび依存ライブラリがコロン(:)区切りで格納されたjar。 ストレージ関数クラスおよび依存ライブラリがコロン(:)区切りで格納されたjarを指定します。 |
ストレージ・コンバータ |
バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータ。 バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータを指定します。 サポートされているコンバータはUtf8StorageConverterです。 |
LKM Pig to File
このKMはpigからファイルにデータをアンロードします。
サポートされているデータ形式は次のとおりです。
-
区切り
-
JSON
-
Pigバイナリ
-
テキスト
-
Avro
-
Trevni
-
カスタム
データはローカル・ファイル・システムまたはHDFSに保存できます。
次の表は、LKM Pig to Fileのオプションについて説明します。
表B-2 LKM Pig to File
オプション | 説明 |
---|---|
ストレージ関数 |
データをロードするのに使用されるストレージ関数。 データをロードするのに使用されるストレージ関数を選択します。 |
スキーマの保存 |
選択した場合、隠しJSONファイルを使用して関係のスキーマを保存します。 |
レコード名 |
保存する一連のタプルに割り当てられるAvroレコード名。 保存する一連のタプルに割り当てられる名前を指定します。 |
ネームスペース |
データの保存の際にAvro/Trevniレコードに割り当てられるネームスペース。 保存する一連のタプルのネームスペースを指定します。 |
ターゲット・ファイルの削除 |
Pigがファイルに書き込む前にターゲット・ファイルを削除します。 選択すると、ターゲット・ファイルはデータを保存する前に削除されます。このオプションにより、ターゲット・ファイルを効率的に上書きできます。 |
関数クラス |
データをロードするストレージ関数として使用するクラスの完全修飾名。 データをロードするストレージ関数として使用するクラスの完全修飾名を指定します。 |
関数のパラメータ |
カスタム関数に必要なパラメータ。 ローダー関数で必要なパラメータを指定します。 たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります ここで、最初の3つの引数はパラメータで、-rootElement MovieStore -tableName movie -schemaのように指定できます。 各要素の意味は次のとおりです。 MusicStore - xmlのルート要素 movie - IDや名前といった子要素をラップする要素 3つ目の引数はpigスキーマのデータの表現です。 パラメータの名前は任意であり、パラメータの数はいくつあってもかまいません。 |
オプション |
ストレージ関数に必要な追加のオプション。 ストレージ関数に必要な追加のオプションを指定します。 たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります 最後の引数オプションは-namespace com.imdb -encoding utf8のように指定できます |
Jar |
ストレージ関数クラスおよび依存ライブラリがコロン(:)区切りで格納されたjar。 ストレージ関数クラスおよび依存ライブラリがコロン(:)区切りで格納されたjarを指定します。 |
ストレージ・コンバータ |
バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータ。 バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータを指定します。 サポートされているコンバータはUtf8StorageConverterです。 |
LKM HBase to Pig
このKMは、HBaseStorage関数を使用してHBase表からPigにデータをロードします。
次の表は、LKM HBase to Pigのオプションについて説明します。
表B-3 LKM HBase to Pig
オプション | 説明 |
---|---|
ストレージ関数 |
データをロードするのに使用されるストレージ関数。 HBase表からpigへのロードにはHBaseStorageが使用されます。 |
行キーのロード |
HBaseから返される各タプルの最初の値として行キーをロードします。 選択した場合、HBaseから返される各タプルの最初の値として行キーをロードします。行キーはODIのHBaseデータ・ストアの'key'列にマップされます。 |
最小キーより大きい |
キーがこのオプションで指定されたキーより大きい行をロードします。 キーが指定のキー値より大きい行がロードされるようキー値を指定します。 |
最小キーより小さい |
行キーがこのオプションで指定された値より小さい行をロードします。 キーが指定のキー値より小さい行がロードされるようキー値を指定します。 |
最小キー以上 |
キーがこのオプションで指定されたキーと同じかそれより大きい行をロードします。 キーが指定のキー値以上である行がロードされるようキー値を指定します。 |
最小キー以下 |
行キーがこのオプションで指定された値と同じかそれより小さい行をロードします。 キーが指定のキー値以下である行がロードされるようキー値を指定します。 |
行の制限 |
リージョン当たりの取得する最大行数。 リージョン当たりの取得する最大行数を指定します。 |
キャッシュされる行 |
キャッシュする行数。 キャッシュする行の数を指定します。 |
ストレージ・コンバータ |
値を変換するのに使用するキャスタの名前。 値を変換するのに使用するキャスタのクラス名を指定します。サポートされている値は、HBaseBinaryConverterおよびUtf8StorageConverterです。指定しない場合、デフォルト値はUtf8StorageConverterになります。 |
列のデリミタ |
HBaseStorage関数の列リストの列を区切るのに使用されるデリミタ。 HBaseStorage関数の列リストの列を区切るのに使用されるデリミタを指定します。指定しない場合、デフォルト値は空白になります。 |
タイムスタンプ |
作成タイムスタンプがこの値と等しいセル値を返します。 作成タイムスタンプが指定の値と等しいセル値を返すようにタイムスタンプを指定します。 |
最小タイムスタンプ |
作成タイムスタンプがこの値より小さいセル値を返します。 作成タイムスタンプが指定の値より小さいセル値を返すようタイムスタンプを指定します。 |
最大タイムスタンプ |
作成タイムスタンプがこの値より小さいセル値を返します。 作成タイムスタンプが指定の値と同じかそれより大きいセル値を返すようタイムスタンプを指定します。 |
LKM Pig to HBase
このKMは、HBaseStorage関数を使用してデータをHBase表に保存します。
次の表は、LKM Pig to HBaseのオプションについて説明します。
表B-4 LKM Pig to HBase
オプション | 説明 |
---|---|
ストレージ関数 |
データを保存するのに使用されるストレージ関数。これは読取り専用のオプションで、変更できません。 HBase表へのデータのロードにはHBaseStore関数が使用されます。 |
ストレージ・コンバータ |
値を変換するのに使用するキャスタの名前。 値を変換するのに使用するキャスタのクラス名を指定します。サポートされている値は、HBaseBinaryConverterおよびUtf8StorageConverterです。指定しない場合、デフォルト値はUtf8StorageConverterになります。 |
列のデリミタ |
HBaseStorage関数の列リストの列を区切るのに使用されるデリミタ。 HBaseStorage関数の列リストの列を区切るのに使用されるデリミタを指定します。指定しない場合、デフォルト値は空白になります。 |
先行書込みログの無効化 |
trueの場合、HBaseへのロードの速度を上げるために先行書込みログがfalseに設定されます。 選択された場合、HBaseへのロードの速度を上げるために先行書込みログがfalseに設定されます。この設定はデータ損失を招くおそれがあるため、十分注意して使用する必要があります。デフォルト値はfalseです。 |
LKM Hive to Pig
このKMは、HCatalogを使用してHive表からPigにデータをロードします。
次の表は、LKM Hive to Pigのオプションについて説明します。
表B-5 LKM Hive to Pig
オプション | 説明 |
---|---|
ストレージ関数 |
データをロードするのに使用されるストレージ関数。これは読取り専用のオプションで、変更できません。 hive表からのデータのロードにはHCatLoaderが使用されます。 |
LKM Pig to Hive
このKMは、HCatalogを使用してデータをhive表に保存します。
次の表は、LKM Pig to Hiveのオプションについて説明します。
表B-6 LKM Pig to Hive
オプション | 説明 |
---|---|
ストレージ関数 |
データをロードするのに使用されるストレージ関数。これは読取り専用のオプションで、変更できません。 hive表へのデータの保存にはHCatStorerが使用されます。 |
パーティション |
作成する新規パーティション。 パーティションのキー/値のペアを表します。パーティション化された表に書き込む際、パーティション列が出力列にない場合、これは必須引数です。パーティション・キーの値は引用符で囲まないでください。 |
LKM SQL to Pig SQOOP
このKMは、JDBCデータ・ソースからのデータをPigに統合します。
次のステップが実行されます。
-
SQOOP構成ファイルを作成します。これにはアップストリーム問合せが格納されます。
-
SQOOPを実行してソース・データを抽出し、csv形式のステージング・ファイルにインポートします。
-
LKM File To Pig KMを実行して、ステージング・ファイルをPIGにロードします。
-
ステージング・ファイルを削除します。
次の表は、LKM SQL to Pig SQOOPのオプションについて説明します。
表B-7 LKM SQL to Pig SQOOP
オプション | 説明 |
---|---|
STAGING_FILE_DELIMITER |
Sqoopはこのデリミタを使用して一時ファイルを作成します。指定しない場合は、\\tが使用されます。 |
ストレージ関数 |
データをロードするのに使用されるストレージ関数。 データをロードするのに使用されるストレージ関数を選択します。 |
複合フィールドのスキーマ |
カンマ(,)で区切られた単純/複合フィールドのpigスキーマ。 pigスキーマ形式でフィールドのデータ型を再定義します。このオプションは、主にデータ・ストアの属性のデフォルトのデータ型変換を上書きするためのものです。たとえば、PO_NO:int,PO_TOTAL:long MOVIE_RATING:{(RATING:double,INFO:chararray)}のようにします。ここで定義されるフィールドの名前はデータ・ストアの属性名と一致している必要があります。 |
関数クラス |
データをロードするストレージ関数として使用するクラスの完全修飾名。 データをロードするストレージ関数として使用するクラスの完全修飾名を指定します。 |
関数のパラメータ |
カスタム関数に必要なパラメータ。 ローダー関数で必要なパラメータを指定します。 たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります ここで、最初の3つの引数はパラメータで、-rootElement MovieStore -tableName movie -schemaのように指定できます。 各要素の意味は次のとおりです。 MusicStore - xmlのルート要素 movie - IDや名前といった子要素をラップする要素 3つ目の引数はpigスキーマのデータの表現です。 パラメータの名前は任意であり、パラメータの数はいくつあってもかまいません。 |
オプション |
ストレージ関数に必要な追加のオプション。 ストレージ関数に必要な追加のオプションを指定します。 たとえば、XMLLoader関数はXMLLoader('MusicStore', 'movie', 'id:double, name:chararray, director:chararry', options)のようになります 最後の引数オプションは-namespace com.imdb -encoding utf8のように指定できます |
Jar |
ストレージ関数クラスおよび依存ライブラリがコロン(:)区切りで格納されたjar。 ストレージ関数クラスおよび依存ライブラリがコロン(:)区切りで格納されたjarを指定します。 |
ストレージ・コンバータ |
バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータ。 バイト配列からPigの各内部タイプにキャストする関数を提供するコンバータを指定します。 サポートされているコンバータはUtf8StorageConverterです。 |
XKM Pig Aggregate
SUMやGROUP BYなどを使用して行を集約します。
次の表は、XKM Pig Aggregateのオプションについて説明します。
表B-8 XKM Pig Aggregate
オプション | 説明 |
---|---|
USING_ALGORITHM |
集計タイプで、collectedまたはmergeです。 |
PARTITION_BY |
Hadoopパーティショナを指定します。 |
PARTITIONER_JAR |
このジョブの並列度を高めます。 |
PARALLEL_NUMBER |
このジョブの並列度を高めます。 |
注意:
マッピングにPigステージングがある場合(Pigを使用して処理が実行され、Pigステージング領域に集計コンポーネントがある場合)、SQLベースのテクノロジの標準マッピングとは異なる句の設定が必要になります。XKM Pig Flatten
指定のオプションに基づいて複合データをネスト解除します。
次の表は、XKM Pig Flattenのオプションについて説明します。
表B-9 XKM Pig Flatten
オプション | 説明 |
---|---|
デフォルト式 |
nullのネストされた表オブジェクトのデフォルト式。例: rating_table(obj_rating('-1', 'Unknown'))。 nullの各ネストされた表オブジェクトに対するデフォルト値が設定された行を返すのに使用されます。 |
XKM Pig Join
結合条件に基づいて複数の入力ソースを結合します。
次の表は、XKM Pig Joinのオプションについて説明します。
表B-10 XKM Pig Join
オプション | 説明 |
---|---|
USING_ALGORITHM |
結合タイプで、replicated、skewedまたはmergeです。 |
PARTITION_BY |
Hadoopパーティショナを指定します。 |
PARTITIONER_JAR |
このジョブの並列度を高めます。 |
PARALLEL_NUMBER |
このジョブの並列度を高めます。 |
XKM Pig Lookup
派生データ・ソースのデータをルックアップします。
次の表は、XKM Pig Lookupのオプションについて説明します。
表B-11 XKM Pig Lookup
オプション | 説明 |
---|---|
Jar |
使用されている定義済関数クラスおよび依存ライブラリがコロン(:)で区切って格納されたjar。 |
XKM Pig Table Function
Pig表関数アクセス。
次の表は、XKM Pig Table Functionのオプションについて説明します。
表B-12 XKM Pig Table Function
オプション | 説明 |
---|---|
PIG_SCRIPT_CONTENT |
ユーザー指定のpigスクリプト・コンテンツ。 |