Vertica Csv 复制命令

问题描述 投票:0回答:1

我是网络开发的新手。我正在使用 Asp.net webform 框架和 c#。我的项目就像 ETL 工具, 我的要求是,我在本地有 csv 文件。并插入到数据库表中。

例如在我的表中我有 10 列。我想使用复制命令 vertica 查询插入选择性 3 列和选择性 3 csv 列

我的场景:

在我的模态弹出窗口中,我有标签和下拉菜单对。标签代表数据库列名称,我有下拉菜单并加载所有 csv 列。

我还准备了一个JObject,比如

{{tablename:[csvFileuserselectedColumnValues,...,]}}
我的问题是否可以将 csv 数据逐列映射到 COPY vertica 查询中的列, 如果不可能请给出任何改变。它适合大数据集,如200万、500万、1000万条记录。

提前致谢。,

c# asp.net csv webforms vertica
1个回答
0
投票

对于数百万行,我会使用 Vertica 的加载功能,只需使用 Vertica 的 SQL。

如果您想从包含 10 个字段的 CSV 文件中插入 3 列,例如第 3、第 5 和第 8:

  • 该表必须存在 - 否则生成并触发如下所示的 SQL 命令:
CREATE TABLE IF NOT EXISTS tgt(id INTEGER, name VARCHAR(64), dob DATE);
  • 您生成一个复制命令,跳过不需要的列:
COPY tgt (
  col1 FILLER VARCHAR
, col2 FILLER VARCHAR
, id
, col4 FILLER VARCHAR
, name
, col5 FILLER VARCHAR
, col6 FILLER VARCHAR
, col7 FILLER VARCHAR
, dob
, col9 FILLER VARCHAR
, col10 FILLER VARCHAR
)
FROM LOCAL '/my/dir/my_file.csv'
DELIMITER ',' ENCLOSED BY '"' ESCAPE '"'
;
© www.soinside.com 2019 - 2024. All rights reserved.