【问题标题】:Build Table in Glue Catalog在 Glue 目录中构建表格
【发布时间】:2021-11-08 19:28:33
【问题描述】:

有没有办法在 Glue Catalog 中创建表格或更新表格?

我们正在使用以下 DDL 在 Glue Catalog 中创建表(和数据库):

CREATE DATABASE IF NOT EXISTS glue_catalog;

CREATE EXTERNAL TABLE IF NOT EXISTS glue_catalog.date
(
   file_dt           date,
   end_dt           date
)
PARTITIONED BY ( 
  year string, 
  month string
  )
ROW FORMAT DELIMITED 
  FIELDS TERMINATED BY '|' 
STORED AS INPUTFORMAT 
  'org.apache.hadoop.mapred.TextInputFormat' 
OUTPUTFORMAT 
  'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat'
LOCATION
  's3://bucket/prefix1/date'
TBLPROPERTIES (
  'classification'='csv', 
  'columnsOrdered'='true', 
  'compressionType'='none', 
  'delimiter'='|', 
  'skip.header.line.count'='1', 
  'typeOfData'='file');

当我们需要更新架构(即数据类型)时。我们必须删除 Glue Catalog 中的表并重新执行上面的脚本,因为我们使用的是 create external table if not exists 语句。我很好奇是否有办法创建一个表,如果它不存在,但如果它存在,更新表?

【问题讨论】:

    标签: amazon-web-services aws-glue amazon-athena aws-glue-data-catalog


    【解决方案1】:

    您可以在documentation 中找到更改命令。尽管这出现在 Athena 服务下,但它适用于 Glue 表。 Athena 表是 Glue 表。

    【讨论】:

    • 我明白了。因此,基本上我无法动态设置如果 Glue 不存在则创建表或如果表存在则更新/添加/替换列的情况。我的选择是以下之一: 1. 删除表,如果不存在则重新运行 CREATE EXTERNAL TABLE。 2. 运行 ALTER TABLE table_name REPLACE COLUMNS/ADD COLUMNS。
    猜你喜欢
    • 1970-01-01
    • 2021-05-30
    • 2018-06-18
    • 1970-01-01
    • 2012-10-23
    • 2020-12-04
    • 1970-01-01
    • 2021-04-01
    • 1970-01-01
    相关资源
    最近更新 更多