【问题标题】:How to load Excel file data into Snowflake table如何将 Excel 文件数据加载到雪花表中
【发布时间】:2022-01-08 01:41:17
【问题描述】:

有一个用例将 Excel 文件(.xls、.xlsx)加载到 Snowflake 中。

使用 SnowSQL PUT 命令,我可以将文件加载到 Stage(用户阶段),并且到目前为止它工作正常。下一步是使用 COPY INTO 命令从 User Stage 加载到 Snowflake Table。问题是 Snowflake 中没有可用的 FILE_FORMAT 来指定 XLS 类型数据。

我不想将 XLS 转换为 CSV 格式,这是 FILE_FORMAT 类型的可用选项。 任何线索如何在不修改源 Excel 文件的情况下做到这一点?

【问题讨论】:

  • 使用 Excel 的 File->Save As->File Format,可以轻松地将 Excel 文件转换为 CSV。但是,是的,这意味着来自源文件。我认为以后不可能在 Snowflake 内完成。例如,您还可以使用 Python 将 xls 文件读入数据帧并将其加载到雪花中,但同样来自源代码。
  • Sergiu 提到的 HI 一种选择是将其保存为 CSV 并加载到 Snowflake,有什么理由不想转换为 CSV 吗?
  • @hkandpal:一个 excel 文件中有多个工作表,大约 500 多个文件需要上传到 Snowflake。在 csv 中转换它们是非常手动且容易出错的过程。此外,Excel 中有 unicode 字符,并且在转换过程中也存在丢失 En-Dash 等特殊字符的风险。转换后验证这么多文件又是一项艰巨的任务。

标签: excel snowflake-cloud-data-platform xls


【解决方案1】:

截至目前,Snowflake 不支持直接从 Excel 文件加载数据。您必须将源文件转换为支持的格式。 https://docs.snowflake.com/en/sql-reference/sql/create-file-format.html

【讨论】:

    【解决方案2】:

    我同意将数据转换为 CSV 容易出错。虽然不是雪花选项的“原生”,但雪花确实有一个 python 连接器,并且有许多 python excel 库。这是关于此的雪花参考:python-connector-pandas 和一个库示例:pandas.read_excel

    考虑到您随后的 cmets 关于 excel 工作簿中的多张工作表和文件的数量,我认为编程解决方案是最佳选择。

    【讨论】:

      【解决方案3】:

      选项 1:

      1. 将文件转换为 CSV 2.将您的文件放入数据湖或s3bucket
      2. 创建文件格式
      3. 使用复制命令https://docs.snowflake.com/en/sql-reference/sql/copy-into-table.html加载您的csv文件

      选项 2:

      1. 将 excel 转换为 csv。

      2. 转到 UI 创建文件格式

      3. 点击表格-->加载表格

      4. 选择文件

      5. 选择文件格式

      6. 加载选项

      【讨论】:

        猜你喜欢
        • 2022-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-10-07
        • 2021-07-18
        • 2022-01-15
        • 2021-09-03
        相关资源
        最近更新 更多