我们可以使用 SQL 查询向 AWS Athena 中的现有 table 添加列吗?
Can we add column to an existing table in AWS Athena using SQL query?
我在 AWS Athena 中有一个 table,其中包含 2 条记录。是否有 SQL 查询可用于将新列插入到 table?
您可以在 Athena documentation
中找到有关向 table 添加列的更多信息
或者您可以使用 CTAS
例如,您有一个 table 和
CREATE EXTERNAL TABLE sample_test(
id string)
LOCATION
's3://bucket/path'
并且您可以使用查询
从 sample_test
创建另一个 table
CREATE TABLE new_test
AS
SELECT *, 'new' AS new_col FROM sample_test
您可以在 AS
之后使用任何可用的查询
这主要是为了像我这样的未来读者,他们正在努力使用 AVRO 数据为 Hive table 工作,并且如果您不想创建新的 table 即更新模式现有 table。它适用于使用 'add columns' 的 csv,但不适用于 Hive + AVRO。对于Hive + AVRO,要在末尾追加列,在分区列之前,解决方案在link。但是,有几件事需要注意,我们需要将完整的模式传递给文字属性,而不仅仅是更改;并且(不知道为什么但是)我们不得不以相同的顺序为所有 3 件事更改配置单元 table - 1. 使用 add columns
添加列 2. set tblproperties
和 3. set serdeproperties
.希望它对某人有所帮助。
我在 AWS Athena 中有一个 table,其中包含 2 条记录。是否有 SQL 查询可用于将新列插入到 table?
您可以在 Athena documentation
中找到有关向 table 添加列的更多信息或者您可以使用 CTAS
例如,您有一个 table 和
CREATE EXTERNAL TABLE sample_test(
id string)
LOCATION
's3://bucket/path'
并且您可以使用查询
从sample_test
创建另一个 table
CREATE TABLE new_test
AS
SELECT *, 'new' AS new_col FROM sample_test
您可以在 AS
这主要是为了像我这样的未来读者,他们正在努力使用 AVRO 数据为 Hive table 工作,并且如果您不想创建新的 table 即更新模式现有 table。它适用于使用 'add columns' 的 csv,但不适用于 Hive + AVRO。对于Hive + AVRO,要在末尾追加列,在分区列之前,解决方案在link。但是,有几件事需要注意,我们需要将完整的模式传递给文字属性,而不仅仅是更改;并且(不知道为什么但是)我们不得不以相同的顺序为所有 3 件事更改配置单元 table - 1. 使用 add columns
添加列 2. set tblproperties
和 3. set serdeproperties
.希望它对某人有所帮助。