apm-wo-analysis/terraform/glue.tf

44 lines
1.2 KiB
Terraform
Raw Normal View History

resource "aws_glue_catalog_database" "analytics" {
name = local.glue_database
}
resource "aws_glue_catalog_table" "snapshots" {
name = local.glue_table
database_name = aws_glue_catalog_database.analytics.name
table_type = "EXTERNAL_TABLE"
parameters = {
classification = "parquet"
EXTERNAL = "TRUE"
"projection.enabled" = "true"
"projection.dt.type" = "date"
"projection.dt.format" = "yyyy-MM-dd"
"projection.dt.range" = "2026-01-01,NOW"
"storage.location.template" = "s3://${aws_s3_bucket.exports.bucket}/analytics/dt=$${dt}/"
}
partition_keys {
name = "dt"
type = "string"
}
storage_descriptor {
location = "s3://${aws_s3_bucket.exports.bucket}/analytics/"
input_format = "org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat"
output_format = "org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat"
ser_de_info {
serialization_library = "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
}
dynamic "columns" {
for_each = local.snapshot_columns
content {
name = columns.value.name
type = columns.value.type
}
}
}
}