📣
TiDB Cloud Premium 开放公测中。为企业级工作负载提供无限扩展、即时弹性伸缩和高级安全保障。此页面由 AI 自动翻译,英文原文请见此处。

将 Parquet 加载到 TiDB Cloud Lake



什么是 Parquet?

Parquet 是一种在数据分析中常用的列式存储格式。它旨在支持复杂的数据结构,并且能够高效处理大型数据集。

Parquet 文件对 TiDB Cloud Lake 最友好。建议使用 Parquet 文件作为 TiDB Cloud Lake 的数据源。

加载 Parquet 文件

加载 Parquet 文件的常用语法如下:

COPY INTO [<database>.]<table_name> FROM { internalStage | externalStage | externalLocation } [ PATTERN = '<regex_pattern>' ] FILE_FORMAT = (TYPE = PARQUET)

教程:从 Parquet 文件加载数据

步骤 1. 创建内部 stage

创建一个内部 stage 来存储 Parquet 文件。

CREATE STAGE my_parquet_stage;

步骤 2. 创建 Parquet 文件

使用以下 SQL 语句生成一个 Parquet 文件:

COPY INTO @my_parquet_stage FROM ( SELECT 'Title_' || CAST(number AS VARCHAR) AS title, 'Author_' || CAST(number AS VARCHAR) AS author FROM numbers(100000) ) FILE_FORMAT = (TYPE = PARQUET);

验证 Parquet 文件是否已创建:

LIST @my_parquet_stage;

结果:

┌──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ name │ size │ md5 │ last_modified │ creator │ ├─────────────────────────────────────────────────────────────────┼────────┼────────────────────────────────────┼───────────────────────────────┼──────────────────┤ │ data_3890e0b1-0233-422c-b506-3a4501602f28_0000_00000000.parquet │ 65443 │ "ab4631846ca8a2beed6a48be75d2acac" │ 2023-12-26 10:28:18.000 +0000 │ NULL │ └──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

有关将数据 unload 到 stage 的更多信息,请参见 COPY INTO location。

步骤 3. 创建目标表

CREATE TABLE books ( title VARCHAR, author VARCHAR );

步骤 4. 直接从 Parquet 复制

要直接将 Parquet 文件中的数据复制到表中,请使用以下 SQL 命令:

COPY INTO books FROM @my_parquet_stage PATTERN = '.*[.]parquet' FILE_FORMAT = (TYPE = PARQUET);

结果:

┌───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┐ │ File │ Rows_loaded │ Errors_seen │ First_error │ First_error_line │ ├─────────────────────────────────────────────────────────────────┼─────────────┼─────────────┼──────────────────┼──────────────────┤ │ data_3890e0b1-0233-422c-b506-3a4501602f28_0000_00000000.parquet │ 100000 │ 0 │ NULL │ NULL │ └───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────┘

步骤 5(可选). 使用 SELECT 复制数据

如果你需要更多控制,例如在复制过程中转换数据,可以使用 SELECT 语句。更多信息请参见 SELECT from Parquet

COPY INTO books (title, author) FROM ( SELECT title, author FROM @my_parquet_stage ) PATTERN = '.*[.]parquet' FILE_FORMAT = (TYPE = PARQUET);

文档内容是否有帮助?