Connecting Athena and S3 in same Cloudformation Stack

前端 未结 1 1924
执念已碎
执念已碎 2021-01-13 15:06

From the documentation, AWS::Athena::NamedQuery, it is unclear how to attach Athena to an S3 bucket specified in the same stack.

If I had to guess from the example,

相关标签:
1条回答
  • 2021-01-13 15:35

    Turns out the way you connect the S3 and Athena is to make a Glue table! How silly of me!! Of course Glue is how you connect things!

    Sarcasm aside, this is a template that worked for me when using AWS::Glue::Table and AWS::Glue::Database,

    Resources:
      MyS3Bucket:
        Type: AWS::S3::Bucket
    
      MyGlueDatabase:
        Type: AWS::Glue::Database
        Properties:
          DatabaseInput:
            Name: my-glue-database
            Description: "Glue beats tape"
          CatalogId: !Ref AWS::AccountId
    
      MyGlueTable:
        Type: AWS::Glue::Table
        Properties:
          DatabaseName: !Ref MyGlueDatabase
          CatalogId: !Ref AWS::AccountId
          TableInput:
            Name: my-glue-table
            Parameters: { "classification" : "csv" }
            StorageDescriptor:
              Location:
                Fn::Sub: "s3://${MyS3Bucket}/"
              InputFormat: "org.apache.hadoop.mapred.TextInputFormat"
              OutputFormat: "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat"
              SerdeInfo:
                Parameters: { "separatorChar" : "," }
                SerializationLibrary: "org.apache.hadoop.hive.serde2.OpenCSVSerde"
              StoredAsSubDirectories: false
              Columns:
                - Name: column0
                  Type: string
                - Name: column1
                  Type: string
    

    After this, the database and table were in the AWS Athena Console!

    0 讨论(0)
提交回复
热议问题