Automation 如何基于snowflake中的任何文本文件自动创建表?

Automation 如何基于snowflake中的任何文本文件自动创建表?,automation,snowflake-cloud-data-platform,Automation,Snowflake Cloud Data Platform,是否有任何工具或方法可以基于任何文本文件自动创建表 我有100多个csv文件,每个文件都有不同的列数。如果先在snowflake中手动创建表定义,然后加载数据,那么工作量会很大。我正在寻找一种在不创建表的情况下加载数据的特定方法 如果有人知道如何解决这个问题,请告诉我。谢谢 数据处理框架,如和,其读卡器可以解析CSV头行,并使用推断的数据类型(而不仅仅是字符串)形成模式。您可以利用它来创建新表 以下示例作为示例提供: 将的SQL写入功能与Snowflake Connector for Pytho

是否有任何工具或方法可以基于任何文本文件自动创建表

我有100多个csv文件,每个文件都有不同的列数。如果先在snowflake中手动创建表定义,然后加载数据,那么工作量会很大。我正在寻找一种在不创建表的情况下加载数据的特定方法


如果有人知道如何解决这个问题,请告诉我。谢谢

数据处理框架,如和,其读卡器可以解析CSV头行,并使用推断的数据类型(而不仅仅是字符串)形成模式。您可以利用它来创建新表

以下示例作为示例提供:

将的SQL写入功能与Snowflake Connector for Python通过 假设每个文件需要一个新表 假设输入文件路径的文件名部分是表名 假设CSV采用标准格式,并且具有列名标题 使用相同的数据库和架构名称创建所有表 将sqlalchemy作为sql导入 作为pd进口熊猫 导入操作系统 设置SQL炼金术引擎对象 这将为熊猫提供一个连接池供以后使用 engine=sql.create\u引擎 'snowflake://{u}:{p}@{a}/{d}/{s}?仓库={w}和角色={r}。格式 u='USERNAME', p='PASSWORD', a='account.region', r='ROLE\u NAME', d='DATABASE', s='SCHEMA', w='WAREHOUSE_NAME', n个输入CSV文件路径的列表 csv\u输入\u文件路径=[ “/tmp/test1.csv”, “/tmp/test2.csv”, “/tmp/test3.csv”, ] 尝试: 处理每条路径 对于csv_输入_文件路径中的路径: 使用路径的文件名组件作为表名 “/tmp/test1.csv”创建名为“test1”的表,以此类推。 文件名,_ext=os.path.splitextos.path.basenamepath 熊猫嗅探和推断标题中的默认CSV读取选项 它将根据数据自动填充模式和类型 数据=pd.read\u csvpath 存储到Snowflake将创建表名(如果不存在) 默认参数将尝试创建一个索引,因此我们禁用它 data.to_sqlfilename,引擎,索引=False 最后: 在退出前,优雅地断开所有连接 引擎处理
数据处理框架(如和)的读卡器可以解析CSV头行,并使用推断的数据类型(而不仅仅是字符串)形成模式。您可以利用它来创建新表

以下示例作为示例提供:

将的SQL写入功能与Snowflake Connector for Python通过 假设每个文件需要一个新表 假设输入文件路径的文件名部分是表名 假设CSV采用标准格式,并且具有列名标题 使用相同的数据库和架构名称创建所有表 将sqlalchemy作为sql导入 作为pd进口熊猫 导入操作系统 设置SQL炼金术引擎对象 这将为熊猫提供一个连接池供以后使用 engine=sql.create\u引擎 'snowflake://{u}:{p}@{a}/{d}/{s}?仓库={w}和角色={r}。格式 u='USERNAME', p='PASSWORD', a='account.region', r='ROLE\u NAME', d='DATABASE', s='SCHEMA', w='WAREHOUSE_NAME', n个输入CSV文件路径的列表 csv\u输入\u文件路径=[ “/tmp/test1.csv”, “/tmp/test2.csv”, “/tmp/test3.csv”, ] 尝试: 处理每条路径 对于csv_输入_文件路径中的路径: 使用路径的文件名组件作为表名 “/tmp/test1.csv”创建名为“test1”的表,以此类推。 文件名,_ext=os.path.splitextos.path.basenamepath 熊猫嗅探和推断标题中的默认CSV读取选项 它将根据数据自动填充模式和类型 数据=pd.read\u csvpath 存储到Snowflake将创建表名(如果不存在) 默认参数将尝试创建一个索引,因此我们禁用它 data.to_sqlfilename,引擎,索引=False 最后: 在退出前,优雅地断开所有连接 引擎处理
非常感谢你。这似乎真的很有用。我试试看。一个后续问题:panda是根据csv文件自动获取数据类型,还是只接受所有列的varchar数据类型?这很有意义。非常感谢!有没有办法使用我的snowsql配置文件而不是在这个引擎对象中提供我的所有凭据?或者像为我的凭证设置环境变量之类的任何事情?你的代码对我来说非常有吸引力!我对你感激不尽。这节省了我很多时间。非常感谢你!如何让to_sql在Snowflake DB中实际保留更改?当我使用to_sql运行时,我没有收到任何错误,但Snowflake实际上没有显示新的值?非常感谢@Harsh。这似乎真的很有用。我试试看。一个后续问题:panda是根据csv文件自动获取数据类型,还是只接受varchar dat
所有列的类型?这很有意义。非常感谢!有没有办法使用我的snowsql配置文件而不是在这个引擎对象中提供我的所有凭据?或者像为我的凭证设置环境变量之类的任何事情?你的代码对我来说非常有吸引力!我对你感激不尽。这节省了我很多时间。非常感谢你!如何让to_sql在Snowflake DB中实际保留更改?当我使用to_sql运行时,我没有收到任何错误,但Snowflake实际上没有显示新的值?