バッチロードのデータモデルマッピング - Amazon Timestream

Amazon Timestream for LiveAnalytics に類似した機能をご希望の場合は Amazon Timestream for InfluxDB をご検討ください。リアルタイム分析に適した、シンプルなデータインジェストと 1 桁ミリ秒のクエリ応答時間を特徴としています。詳細については、こちらを参照してください。

バッチロードのデータモデルマッピング

以下にデータモデルマッピングのスキーマについて説明し、例を示します。

データモデルマッピングスキーマ

DescribeBatchLoadTask への呼び出しによって返される CreateBatchLoadTask リクエスト構文と BatchLoadTaskDescription オブジェクトには、バッチロード用の DataModel を含む DataModelConfiguration オブジェクトが含まれます。DataModel は、S3 ロケーションに CSV 形式で保存されているソースデータからターゲットの Timestream for LiveAnalytics データベースとテーブルへのマッピングを定義します。

TimeColumn フィールドは、Timestream for LiveAnalytics の送信先テーブルの time 列にマッピングされる値のソースデータの場所を示します。TimeUnitTimeColumn の単位を指定し、MILLISECONDSSECONDSMICROSECONDSNANOSECONDS のいずれかを指定できます。ディメンションとメジャーのマッピングもあります。ディメンションマッピングは、ソース列とターゲットフィールドで構成されます。

詳細については、「DimensionMapping」を参照してください。メジャーのマッピングには、MixedMeasureMappingsMultiMeasureMappings の 2 つのオプションがあります。

要約すると、DataModel には、S3 ロケーションにあるデータソースからターゲットの Timestream for LiveAnalytics テーブルへのマッピングが含まれます。

  • Time

  • ディメンション

  • メジャー

可能であれば、メジャーデータを Timestream for LiveAnalytics のマルチメジャーレコードにマッピングすることをお勧めします。マルチメジャーレコードの利点については、「マルチメジャーレコード」を参照してください。

ソースデータの複数のメジャーが単一の行に保存されている場合は、MultiMeasureMappings を使用して、これらの複数のメジャーを Timestream for LiveAnalytics のマルチメジャーレコードにマッピングできます。単一メジャーレコードへのマッピングが必要な値がある場合は、MixedMeasureMappings を使用できます。

MixedMeasureMappingsMultiMeasureMappings の両方に MultiMeasureAttributeMappings が含まれます。単一メジャーレコードが必要かどうかにかかわらず、マルチメジャーレコードがサポートされます。

Timestream for LiveAnalytics でマルチメジャーターゲットレコードのみが必要な場合は、次の構造でメジャーマッピングを定義できます。

CreateBatchLoadTask
    MeasureNameColumn
    MultiMeasureMappings
        TargetMultiMeasureName
        MultiMeasureAttributeMappings array
注記

可能な場合は常に、MultiMeasureMappings を使用することをお勧めします。

Timestream for LiveAnalytics で単一メジャーターゲットレコードが必要な場合は、次の構造でメジャーマッピングを定義できます。

CreateBatchLoadTask
    MeasureNameColumn
    MixedMeasureMappings array
        MixedMeasureMapping
            MeasureName
            MeasureValueType
            SourceColumn
            TargetMeasureName
            MultiMeasureAttributeMappings array

MultiMeasureMappings を使用する場合、MultiMeasureAttributeMappings 配列が常に必要となります。MixedMeasureMappings 配列を使用するとき、MeasureValueType が特定の MixedMeasureMappingMULTI である場合、その MixedMeasureMapping には MultiMeasureAttributeMappings が必要です。それ以外の場合、MeasureValueType は単一メジャーレコードのメジャータイプを示します。

いずれの場合も、MultiMeasureAttributeMapping の配列を使用できます。各 MultiMeasureAttributeMapping のマルチメジャーレコードへのマッピングは、次のように定義します。

SourceColumn

Amazon S3 にあるソースデータの列。

TargetMultiMeasureAttributeName

送信先テーブル内のターゲットマルチメジャーの名前。この入力は、MeasureNameColumn が指定されていない場合に必須です。MeasureNameColumn が指定されている場合、その列の値がマルチメジャー名として使用されます。

MeasureValueType

DOUBLEBIGINTBOOLEANVARCHARTIMESTAMP のいずれか。

MultiMeasureMappings の例を使用したデータモデルマッピング

この例では、推奨アプローチである各メジャー値を専用列に保存するマルチメジャーレコードへのマッピングを示します。サンプル CSV はサンプル CSV でダウンロードできます。サンプルには、Timestream for LiveAnalytics テーブルのターゲット列にマッピングする次の見出しがあります。

  • time

  • measure_name

  • region

  • location

  • hostname

  • memory_utilization

  • cpu_utilization

CSV ファイル内の列 time と列 measure_name を特定します。この場合、これらは同じ名前の Timestream for LiveAnalytics テーブル列に直接マッピングされます。

  • timetime にマッピングされる

  • measure_namemeasure_name (または選択した値) にマッピングされる

API を使用している場合は、TimeColumn フィールドに time を指定し、TimeUnit フィールドに MILLISECONDS などのサポートされている時間単位の値を指定します。これらは、コンソールのソース列名タイムスタンプ時間入力に対応しています。MeasureNameColumn キーで定義されている measure_name を使用して、レコードをグループ化またはパーティション化できます。

サンプルでは、regionlocationhostname はディメンションです。ディメンションは DimensionMapping オブジェクトの配列にマッピングされます。

メジャーの場合、値 TargetMultiMeasureAttributeName は Timestream for LiveAnalytics テーブルの列になります。この例のように、同じ名前を保持できます。または、新しい名前を指定できます。MeasureValueType は、DOUBLEBIGINTBOOLEANVARCHARTIMESTAMP のいずれかです。

{ "TimeColumn": "time", "TimeUnit": "MILLISECONDS", "DimensionMappings": [ { "SourceColumn": "region", "DestinationColumn": "region" }, { "SourceColumn": "location", "DestinationColumn": "location" }, { "SourceColumn": "hostname", "DestinationColumn": "hostname" } ], "MeasureNameColumn": "measure_name", "MultiMeasureMappings": { "MultiMeasureAttributeMappings": [ { "SourceColumn": "memory_utilization", "TargetMultiMeasureAttributeName": "memory_utilization", "MeasureValueType": "DOUBLE" }, { "SourceColumn": "cpu_utilization", "TargetMultiMeasureAttributeName": "cpu_utilization", "MeasureValueType": "DOUBLE" } ] } }
Visual builder interface showing column mappings for timestream data attributes and types.

MixedMeasureMappings の例を使用したデータモデルマッピング

このアプローチは、Timestream for LiveAnalytics の単一メジャーレコードにマッピングする必要がある場合にのみ使用することをお勧めします。