雪花镶木地板加载模式生成

Posted

技术标签:

【中文标题】雪花镶木地板加载模式生成【英文标题】:snowflake parquet load schema generation 【发布时间】:2020-09-17 01:13:56 【问题描述】:

正在将镶木地板文件从 S3 位置加载到雪花表。这就是我正在做的事情:

    已创建目标表
CREATE TABLE myschema.target_table(
 col1 DATE,
 col2 VARCHAR);
    使用以下命令创建阶段表
CREATE OR REPLACE TEMPORARY STAGE myschema.stage_table 
   url = 's3://mybucket/myfolder1/' 
 storage_integration = My_int 
 fileformat = (type = 'parquet')
    从暂存表加载目标表
COPY INTO myschema.target_table FROM(
  SELECT $1:col1::date,
         $1:col2:varchar
  FROM myschema.stage_table)

这很好用,我的问题是,我有 10 个表和 10 个列。有什么办法可以优化第3步,我不必明确提及列名,这样代码就会变得通用:

 COPY INTO myschema.target_table FROM(
  SELECT *
  FROM myschema.stage_table)

【问题讨论】:

您能否在 AWS 上使用 Glue 将镶木地板转换为 CSV。成本更高,但如果您可以使用 CSV,则不必提及列 【参考方案1】:

你试过了吗 MATCH_BY_COLUMN_NAME = CASE_SENSITIVE | CASE_INSENSITIVE |无

文档:https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html#type-parquet

【讨论】:

以上是关于雪花镶木地板加载模式生成的主要内容,如果未能解决你的问题,请参考以下文章

如何将镶木地板格式的特定列加载到 Redshift 光谱中?

如何使用 Spark 将镶木地板文件加载到 Hive 表中?

将分区(火花)镶木地板加载到 bigquery 表

将镶木地板文件加载到红移时如何格式化时间戳字段?

如何从 hadoopish 文件夹加载镶木地板文件

如何将带小数字段的镶木地板文件加载到BigQuery中?