現在、データレイク (=ソース) のデータカタログを作成する方法を理解するのに苦労しています。
バックグラウンド:
イベント駆動型のアーキテクチャがあり、アプリケーションによって生成されたすべてのイベントをデータレイク (S3 バケット) に保存し始めました。イベントを保存する前にサニタイズ (機密情報を削除) し、各イベントの周りにいくつかの一般的なデータを含むエンベロープを追加します。
- イベントの発生元 (イベントを生成したアプリケーション)
- イベントの種類 (どのようなイベントが生成されたか)
- タイムスタンプ (イベントがいつ生成されたか)
- ...
Kinesis Streams と Firehose を使用して、これらのイベントをまとめてバッチ処理し、JSON ファイルとして S3 バケットに保存します。バケットは次のように構成されています: /////
そこに、バッチ処理されたイベントをエンベロープと共に JSON ファイルとして保存します。つまり、1 つの JSON ファイルに複数のイベントが含まれています。
{
"origin": "hummingbird",
"type": "AuthenticationFailed",
"timestamp": "2019-06-30T18:24:13.868Z",
"correlation_id": "2ff0c077-542d-4307-a58b-d6afe34ba748",
"data": {
...
}
}
{
"origin": "hummingbird",
"type": "PostingCreated",
"timestamp": "2019-06-30T18:24:13.868Z",
"correlation_id": "xxxx",
"data": {
...
}
}
データ オブジェクトには、イベントの特定のデータが含まれます。
これで、AWS Glue を使用して生データにフックし、ETL ジョブを使用してイベント データを集計できると考えました。私が理解したように、ソースデータ用のデータカタログが必要です.JSONには常にバッチ処理されたさまざまなイベントが含まれているため、ここで苦労しています。標準の「クローラー」はこれを処理できません..うまく処理できますが、すべての JSON ファイルに基づいて無意味なスキーマを作成します。
私が達成したかったこと:
- データ レイクを解析して、関心のあるイベントを除外する
- 興味のあるイベントを使用して、それを使用して変換/集計/計算を行います
- 結果を現在のAnalytics RDSまたはどこにでも保存します(現在の目的には十分です)
- 毎日新しいイベントを解析し、それを分析 rds に挿入/追加/更新します
私の質問:
- データレイクで接着剤を使用する最良の方法は何ですか?
- カスタム分類子と何らかのフィルターを備えたクローラーをデータレイクと一緒に使用する方法はありますか?
- 実際に AWS グルーを使用できるようにするために、事前にデータを変換する必要がありますか?