AWS Glue マネージド変換によるデータの変換
AWS Glue Studio には、次の 2 種類の変換が用意されています。
-
AWS Glue ネイティブ変換 - すべてのユーザーが利用でき、AWS Glue によって管理されます。
-
カスタムビジュアル変換 - 自分のカスタムビジュアル変換をアップロードして、AWS Glue Studio で使用できます。
AWS Glue マネージドデータ変換ノード
AWS Glue Studio には、データを処理するために使用できる一式の組み込み変換が用意されています。データは、ジョブ図内のあるノードから DynamicFrame
と呼ばれるデータ構造の別のノードに渡されます。これは、Apache Spark SQL DataFrame
の拡張機能です。
事前設定されたジョブ図では、データソースとデータターゲットノード間で、スキーマ変更変換ノードを使用できます。この変換ノードを設定すると、データを修正したり、他の変換を使用できます。
AWS Glue Studio を用いて、次のbuilt-in 変換が利用可能です。
-
ChangeSchema: データソースのデータプロパティキーを、データターゲットのデータプロパティキーにマッピングします。キーの名前を変更したり、データ型を変更したり、データセットから削除するキーを選択できます。
-
SelectFields: 保持したいデータプロパティキーを選択します。
-
DropFields: 削除したいデータプロパティキーを選択します。
-
RenameField: 単一のデータプロパティキーの名前を変更します。
-
Spigot:Amazon S3 バケットにデータのサンプルを書き込みます。
-
Join: 指定したデータプロパティキー上の比較フレーズを使用して、2 つのデータセットを 1 つに結合します。結合タイプは、内部結合、外部結合、左結合、右結合、左半結合、左反結合を使用できます。
-
Union: 同じスキーマを持つ複数のデータソースの行を結合します。
-
SplitFields: データプロパティキーを 2 つの
DynamicFrames
に分割します。出力はDynamicFrames
のコレクションです。一方は選択したデータプロパティキー、他方は残っている方のデータプロパティキーを持ちます。 -
SelectFromCollection:
DynamicFrame
のコレクションから を 1 つのDynamicFrames
を選択します。出力は選択されたDynamicFrame
です。 -
[FillMissingValues]:欠落値があるデータセットの記録を配置し、代入によって決定された提案値を用いた新しいフィールドを追加します。
-
Filter: フィルター条件に基づいて、データセットを 2 つに分割します。
-
[Drop Null Fields]: 列のすべての値が「null」の場合、データセットから列を削除します。
-
[Drop Duplicates]: 行全体を照合するか、キーを指定するかを選択して、データソースから行を削除します。
-
SQL:SparkSQL コードをテキスト入力フィールドに入力して、データを変換するために SQL クエリを使用します。出力は、単一の
DynamicFrame
です。 -
Aggregate: 選択したフィールドと行で計算 (平均、合計、最小、最大など) を実行し、計算された値を使って新しいフィールドを作成します。
-
Flatten: Struct 内のフィールドを最上位のフィールドに抽出します。
-
UUID: 各行にユニバーサル一意識別子を含む列を追加します。
-
Identifier: 各行に数値識別子を含む列を追加します。
-
To timestamp: 列をタイムスタンプタイプに変換します。
-
Format timestamp: タイムスタンプ列をフォーマットされた文字列に変換します。
-
Conditional Router transform: 受信データに複数の条件を適用します。受信データの行はそれぞれグループフィルター条件により評価され、対応するグループに取り入れて処理されます。
-
[列の連結] 変換: オプションのスペーサーを使用して、他の列の値を使った新しい文字列の列を作成します。
-
[文字列の分割] 変換: 正規表現を使用して文字列をトークンの配列に分割し、分割方法を定義します。
-
[配列から列へ] 変換: 配列タイプの列の一部またはすべての要素を抽出し、新しい列に追加します。
-
[現在のタイムスタンプを追加] 変換: データが処理された時刻で行をマークします。これは、監査目的やデータパイプラインでのレイテンシーの追跡に役立ちます。
-
[行から列へのピボット] 変換: 選択した列の固有の値を回転させて数値列を集約し、新しい列にします。複数の列を選択した場合、値が連結されて新しい列に名前が付けられます。
-
[列から行へのピボット解除] 変換: 列を新しい列の値に変換し、固有の値ごとに行を生成します。
-
[オートバランス処理] 変換: データをワーカー間でより適切に再配分します。これは、データのバランスが取れていない場合や、ソースから取得したデータでは十分に並行処理ができない場合に役立ちます。
-
[派生列] 変換: 数式または SQL 式に基づいて新しい列を定義します。これらの式では、データ内の他の列および定数やリテラルを使用できます。
-
[ルックアップ] 変換: キーがデータ内の定義済みのルックアップ列と一致する場合、定義済みのカタログテーブルから列を追加します。
-
[配列またはマップを行に分解] 変換: ネストされたデータ構造から値を抽出し、操作しやすい個々の行に値を追加します。
-
レコードマッチング変換: 既存のレコードマッチング機械学習データ分類変換を呼び出します。
-
null 行変換を削除: すべての列が null または空の行をデータセットから削除します。
-
JSON 列変換の解析: JSON データを含む文字列の列を解析し、JSON がオブジェクトか配列かに応じて、それぞれを構造体または配列の列に変換します。
-
JSON パス変換の抽出: JSON 文字列の列から新しい列を抽出します。
-
正規表現から文字列の断片を抽出: 正規表現を使用して文字列の断片を抽出し、そこから新しい列を作成します。正規表現グループを使用する場合は、複数の列を作成します。
-
Custom transform: カスタム transforms を使用するために、テキスト入力フィールドにコードを入力します。出力は、
DynamicFrames
のコレクションです。