Snowflake 简明教程

Snowflake - Load Data From Files

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

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

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

Load Data into Tables and Columns using Snowflake’s 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 funtionality

针对列重新验证示例文件。单击列名称顶部的按钮。它会弹出“加载数据”对话框。在第一个屏幕上,选择仓库名称并单击按钮。

load data pop up

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

select files

现在通过单击,创建文件格式,如以下屏幕截图所示。

create file format

它会弹出对话框。输入以下详细信息。

  1. * 文件格式的名称。

  2. Schema Name − 创建文件格式只能在给定的模式中使用。

  3. * 文件格式的名称。

  4. Column separator - 如果 CSV 文件被分隔,请提供文件分隔符。

  5. Row separator - 如何识别新行。

  6. Header lines to skip - 如果提供了表头,则为 1,否则为 0。

其他内容可以保持不变。在输入详细信息后单击 Finish 按钮。

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

create file format details

从下拉列表中选择文件格式,然后单击 Load ,如下面的屏幕截图所示 -

click load

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

click ok

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

run the query

Load Data into Tables and Columns using SQL

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

使用 SnowSQL(Snowflake 提供的插件)将文件上载到 Snowflake 的暂存区域。要执行此操作,请转到 help ,然后单击“下载”,如下所示 -

go to help and click download

单击 CLI 客户端 (snowsql),然后单击 Snowflake Repository ,如下面的屏幕截图所示 -

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

数据将加载到表中。