【问题标题】:Dynamically alter range of Athena Partition Projection动态改变 Athena 分区投影的范围
【发布时间】:2021-09-03 03:44:52
【问题描述】:

我正在尝试了解如何准确地使用 Athena 分区投影来处理最新的滚动动态时间段,例如 3 个月。据我了解,我需要在创建表时指定静态日期范围。随着时间的推移,我将如何更新此日期范围?我是否需要更改表格以使其保持最新状态?

示例: 数据存储为 s3://bucket-foo/path-bar/dt=2020-01-01/client=acme,有 2 个分区(dtclient) 到 2020 年 4 月,我不会特别关心 2020 年 1 月的数据。

这与传统的 Athena 分区有什么不同,在传统 Athena 分区中,我只需更改表,然后删除旧的/过时的分区吗?我想知道我是否混淆了这些概念。

【问题讨论】:

    标签: amazon-web-services amazon-athena


    【解决方案1】:

    多次阅读文档后,它非常简单。

    日期类型的动态开始和结束:"projection.dt.range": "NOW-90DAYS,NOW"

    因为我总是按单个客户端(而不是一组/范围的客户端)获取数据,所以我可以这样做:"projection.client.type": "injected"

    这个 CloudFormation 模板对我有用:

    FooTable:
        Type: AWS::Glue::Table
        DependsOn: FooDB
        Properties:
          DatabaseName: !Ref FooDB
          CatalogId: !Ref AWS::AccountId
          TableInput:
            Name: FooTable
            Parameters: {
              "classification" : "json",
              "projection.enabled": true,
              "projection.client.type": "injected",
              "projection.dt.type": "date",
              "projection.dt.format": "yyyy-MM-dd",
              "projection.dt.range": "NOW-90DAYS,NOW",
              "projection.dt.interval.unit": "DAYS",
              "projection.dt.interval": 1,
              "storage.location.template": "s3://BUCKET_NAME/clients/client=${client}/dt=${dt}"
            }
            TableType: EXTERNAL_TABLE
            PartitionKeys:
              - Name: client
                Type: string
              - Name: dt
                Type: string
            StorageDescriptor:
              Location: s3://BUCKET_NAME/clients/
              InputFormat: org.apache.hadoop.mapred.TextInputFormat
              OutputFormat: org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat
              SerdeInfo:
                SerializationLibrary: org.openx.data.jsonserde.JsonSerDe
                Parameters: { "serialization.format": 1 }
              Columns:
                - Name: ...
                  Type: string
                - Name: ...
                  Type: string
    
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-24
      • 2023-04-10
      • 2021-02-25
      • 2021-03-16
      • 1970-01-01
      • 2010-10-23
      • 2017-03-11
      • 2014-05-14
      相关资源
      最近更新 更多