首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Python的Sqlalchemy和Singlestore sql创建与现有表类似的表

使用Python的Sqlalchemy和Singlestore sql创建与现有表类似的表
EN

Stack Overflow用户
提问于 2021-12-10 16:56:54
回答 1查看 112关注 0票数 0

我在单存储数据库中有一组现有的表,其中许多是列存储表。

我想要构建一个python脚本,它将把我的开发表迁移到生产表。开发表已经构建、分析并与现有表进行了比较,但是我不需要硬编码sql脚本来用dev替换现有的prod表,我希望有一种健壮的python方式来执行此操作。

下面是我到目前为止的代码:

代码语言:javascript
复制
import sqlalchemy
import datalake_toolset as tls # customized module for personal use

# connect to database and obtain metadata
engine = tls.create_lake_engine() # just creates my engine for my database
conn = engine.connect()
metadata = sqlalchemy.MetaData(conn)
metadata.reflect()

# identify the tables and isolate to interested tables only
tables = metadata.tables
tablenames = [x.name for x in tables.values() 
              if x.name.startswith('NamesOfInterest')]

# start with an example table and see if we can create a prod
table = [x for x in tablenames if 'SomeExampleString' in x][0]

# obtain the metadata for the new prod table
table_meta = tables.get(table)

# change table metadata name
table_meta.name = table_meta.name.replace('_Dev_', '_Prod_')

# now go create the prod table

这就是我被困的地方。如何创建新的Prod表,其结构和数据类型与Dev表相同,,而保留了列存储功能(其中一些数据集将是数百万条记录,对于那么大的表,我对默认的行存储有业务约束)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-12-10 23:46:28

我对sqlalchemy不太了解,但是您可以使用CREATE TABLE LIKE创建一个与现有表相同的模式的新表。有点像

代码语言:javascript
复制
CREATE TABLE t_prod LIKE t_dev;

如果t_dev是一个列存储表,t_prod也将是(它们的show create table输出将是相同的)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70307961

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档