この付録では、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です。 |
この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です。 |
この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関数の列リストの列を区切るのに使用されるデリミタを指定します。指定しない場合、デフォルト値は空白になります。 |
タイムスタンプ |
作成タイムスタンプがこの値と等しいセル値を返します。 作成タイムスタンプが指定の値と等しいセル値を返すようにタイムスタンプを指定します。 |
最小タイムスタンプ |
作成タイムスタンプがこの値より小さいセル値を返します。 作成タイムスタンプが指定の値より小さいセル値を返すようタイムスタンプを指定します。 |
最大タイムスタンプ |
作成タイムスタンプがこの値より小さいセル値を返します。 作成タイムスタンプが指定の値と同じかそれより大きいセル値を返すようタイムスタンプを指定します。 |
この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です。 |
このKMは、HCatalogを使用してデータをhive表からPigにロードします。
次の表は、LKM Hive to Pigのオプションについて説明します。
このKMは、HCatalogを使用してデータをhive表に保存します。
次の表は、LKM Pig to Hiveのオプションについて説明します。
このKMは、JDBCデータ・ソースからのデータをPigに統合します。
次の手順が実行されます。
SQOOP構成ファイルを作成します。これにはアップストリーム問合せが格納されます。
SQOOPを実行してソース・データを抽出し、csv形式のステージング・ファイルにインポートします。
LKM File To Pig KMを実行して、ステージング・ファイルをPIGにロードします。
ステージング・ファイルを削除します。
次の表は、LKM SQL to Pig SQOOPのオプションについて説明します。
表B-7 LKM File to Pig
オプション | 説明 |
---|---|
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です。 |
SUMやGROUP BYなどを使用して行を集約します。
次の表は、XKM Pig Aggregateのオプションについて説明します。
データの重複を排除します。
単一のマッピングにおいて再使用される式を定義します。
フィルタ条件に基づいてデータのサブセットを生成します。
指定のオプションに基づいて複合データをネスト解除します。
次の表は、XKM Pig Flattenのオプションについて説明します。
結合条件に基づいて複数の入力ソースを結合します。
次の表は、XKM Pig Joinのオプションについて説明します。
派生データ・ソースのデータをルックアップします。
次の表は、XKM Pig Lookupのオプションについて説明します。
別々の行のデータを取得して集計し、列に変換します。
UNION、MINUSまたはその他の集合演算を実行します。
式を使用してデータをソートします。
データを複数の条件により複数のパスに分割します。
副問合せの結果に基づいて行をフィルタします。
Pig表関数アクセス。
次の表は、XKM Pig Table Functionのオプションについて説明します。
複数の属性の単一行を複数の行に効率的に変換します。