【问题标题】:How to load csv file from s3 bucket using C# and MySql?如何使用 C# 和 MySql 从 s3 存储桶加载 csv 文件?
【发布时间】:2022-11-03 18:41:50
【问题描述】:

我想使用 s3 存储桶中的文件将 CSV 文件加载到 MySql 数据库表。我可以使用以下代码从本地驱动器加载文件

                using (MySqlConnection myConn = new MySqlConnection("Server = localhost; Database = aaaa; Uid = bbbb; Pwd = ccc"))
                {

                MySqlBulkLoader loader = new MySqlBulkLoader(myConn);
                loader.TableName = "mytable";
                loader.FieldTerminator = "|";
                loader.LineTerminator = "\n";
                loader.NumberOfLinesToSkip = 2;
                loader.FileName = "c:\file1.csv";

                myConn.Open();
                int insertCount = bulkLoader.Load();
                myConn.Close();

            }

您能否提供一些示例以从 s3 存储桶加载 csv 文件?谢谢你。

【问题讨论】:

  • 我的方法:找出MySqlBulkLoader 是否可以接受Stream 而不是文件名。假设可以,从 S3 存储对象打开一个Stream 并将其传递给加载程序。如果这不可行,请将 CSV 文件从 S3 下载到本地文件,然后将该本地文件传递给加载程序,然后在完成后清理该本地文件。
  • 如果您将 csv 文件下载到本地驱动器?
  • 我将尝试流选项,但我想从 s3 存储桶中加载它
  • @akabaka 您能否解释一下“希望它从 S3 存储桶中加载它”是什么意思?你是说你希望它以某种方式从文件“直接”到数据库表吗? Diplomacy 建议将文件作为流读取并将其传递给 BulkLoader,这基本上与您所能达到的一样接近 - 文件数据将不得不以一种或另一种方式“通过”您的代码。
  • @Kayndaar,我想使用流或通过将存储桶文件名传递给批量插入将csv文件数据加载到mysql db,但我不确定,如何将流传递给批量插入

标签: c# mysql amazon-s3


【解决方案1】:

LOAD DATA FROM S3 's3://db-bucket-name/folder-name/test.csv' INTO TABLE table-name FIELDS TERMINATED BY ',' ENCLOSED BY '"+'"'+"' LINES TERMINATED BY ' ';

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 2021-10-25
    • 2013-04-29
    • 2018-12-31
    • 1970-01-01
    • 2019-12-07
    • 2019-09-13
    • 1970-01-01
    相关资源
    最近更新 更多