使用带有 AWS CDK 的 CREATE TABLE EXTERNAL 命令在 S3 存储桶上创建 Athena Table

Create an Athena Table over S3 bucket using CREATE TABLE EXTERNAL command with AWS CDK

我是 AWS CDK 的新手,想知道如何在不使用爬虫的情况下在 S3 存储桶 上创建 A​​thena table。我想编写一个 SQL 语句来使用 CREATE TABLE EXTERNAL 查询创建 table 并使用 AWS CDK 部署它。非常感谢任何帮助。

谢谢

我们需要在 Glue 中创建数据库和 table。 Glue 的文档是 here

CREATE TABLE EXTERNAL 将简单地做完全相同的事情,在 Glue 中创建指向 S3 位置的 table,可以在 Athena 中查询。

这里是示例 CDK 代码

const myDatabase = new glue.Database(this, "MyS3Db", {
  databaseName: "my_s3_database",
});

new glue.Table(this, "MyTable", {
  database: myDatabase,
  tableName: "my_table",
  bucket: new s3.Bucket(this, "bucket-where-source-data-is"),
  columns: [
    {
      name: "col1",
      type: glue.Schema.STRING,
    },
    {
      name: "col2",
      type: glue.Schema.array(glue.Schema.STRING),
      comment: "col2 is an array of strings",
    },
  ],
  dataFormat: glue.DataFormat.JSON,
});