Snowflake - 从文件加载数据



在数据库中,创建了模式,它们是表的逻辑分组。表包含列。表和列是数据库中低级别的且最重要的对象。现在,表和列最重要的功能是存储数据。

在本章中,我们将讨论如何在 Snowflake 中将数据存储到表和列中。

Snowflake 为用户提供了两种方法,可以使用用户界面和 SQL 查询将数据存储到表和相应的列中。

使用 Snowflake 的 UI 将数据加载到表和列中

在本节中,我们将讨论使用 CSV、JSON、XML、Avro、ORC、Parquet 等文件将数据加载到表及其相应列中应遵循的步骤。

此方法仅限于加载最多 50 MB 的少量数据。

以任何格式创建一个示例文件。在创建文件时,请确保文件中的列数与表中的列数匹配,否则在加载数据时操作将失败。

在 TEST_DB.TEST_SCHEMA.TEST_TABLE 中,有三个列:ID、NAME 和 ADDRESS。

以下示例数据是在“data.csv”中创建的:

ID NAME ADDRESS
1 aa abcd
2 ab abcd
3 aa abcd
4 ab abcd
5 aa abcd
6 ab abcd
7 aa abcd
8 ab abcd
9 aa abcd

现在,点击顶部功能区中存在的数据库图标。点击您要上传数据的表名。它显示列数和定义。

以下屏幕截图显示了加载数据功能:

Load Data Functionality

重新验证与列相关的示例文件。点击列名顶部的加载表按钮。它会弹出加载数据对话框。在第一个屏幕上,选择数据仓库名称,然后点击下一步按钮。

Load Data Pop Up

在下一个屏幕上,通过点击选择文件从本地计算机选择一个文件。文件上传后,您可以看到文件名,如以下屏幕截图所示。点击下一步按钮。

Select Files

现在通过点击+ 号创建文件格式,如以下屏幕截图所示:

File Format

它会弹出创建文件格式对话框。输入以下详细信息:

  • 名称 - 文件格式的名称。

  • 模式名称 - 创建的文件格式只能在给定的模式中使用。

  • 格式类型 - 文件格式的名称。

  • 列分隔符 - 如果 CSV 文件已分隔,请提供文件分隔符。

  • 行分隔符 - 如何识别新行。

  • 要跳过的标题行 - 如果提供了标题,则为 1,否则为 0。

其他内容可以保持原样。输入详细信息后,点击完成按钮。

以下屏幕截图显示了上述详细信息:

File Format Details

从下拉列表中选择文件格式,然后点击加载,如以下屏幕截图所示:

Click Load

加载结果后,您将获得摘要,如下所示。点击确定按钮。

Click OK

要查看数据,请运行查询“SELECT * from TEST_TABLE”。在左侧面板中,用户还可以看到数据库、模式和表详细信息。

Run the Query

使用 SQL 将数据加载到表和列中

要从本地文件加载数据,您可以执行以下步骤:

使用 SnowSQL(Snowflake 提供的插件)将文件上传到 Snowflake 的阶段。要执行此操作,请转到帮助并点击下载,如下所示:

Go to Help and click Download

点击 CLI 客户端 (snowsql),然后点击Snowflake 存储库,如以下屏幕截图所示:

Click CLI Client

用户可以移动到 bootstrap → 1.2 → windows_x86_64 → 点击下载最新版本。

以下屏幕截图显示了上述步骤:

Snowflake Repository

现在,安装下载的插件。安装后,在您的系统中打开 CMD。运行以下命令以检查连接:

snowsql -a <account_name> -u <username>

它会提示输入密码。输入您的 Snowflake 密码并按 ENTER。您将看到成功的连接。现在使用命令行:

<username>#<warehouse_name>@<db_name>.<schema_name>

现在使用以下命令将文件上传到 Snowflake 的阶段:

PUT file://C:/Users/*******/Documents/data.csv @csvstage;

不要忘记在末尾加上“分号”,否则它将永远运行。

文件上传后,用户可以在工作表中运行以下命令:

COPY INTO "TEST_DB"."TEST_SCHEMA_1"."TEST_TABLE" FROM @/csvstage ON_ERROR = 'ABORT_STATEMENT' PURGE = TRUE

数据将加载到表中。

广告