我需要加入 所有 PostgreSQL表并将它们转换成Python字典。数据库中有72个表。总列数大于 1600 。
我编写了一个简单的Python脚本,该脚本可以联接多个表,但是由于内存错误而无法联接所有表。在脚本执行期间,所有内存均被占用。然后,我在具有
128GB RAM和8个CPU 的新虚拟服务器上运行脚本。在lambda函数执行期间失败。
如何改进以下代码以执行 所有 表联接?
from sqlalchemy import create_engine
import pandas as pd
auth = 'user:pass'
engine = create_engine('postgresql://' + auth + '@host.com:5432/db')
sql_tables = ['table0', 'table1', 'table3', ..., 'table72']
df_arr = []
[df_arr.append(pd.read_sql_query('select * from "' + table + '"', con=engine)) for table in sql_tables]
df_join = reduce(lambda left, right: pd.merge(left, right, how='outer', on=['USER_ID']), df_arr)
raw_dict = pd.DataFrame.to_dict(df_join.where((pd.notnull(df_join)), 'no_data'))
print(df_join)
print(raw_dict)
print(len(df_arr))
可以将Pandas用于我的目的吗?有更好的解决方案吗?
最终目标是对数据库数据进行规范化处理,以便能够将其作为文档索引到Elasticsearch中,每个用户一个文档。
为什么不创建postgres函数而不是脚本?
以下是一些建议,可以帮助您避免内存错误:
本文向大家介绍postgresql 创建一个纯JSON表,包括了postgresql 创建一个纯JSON表的使用技巧和注意事项,需要的朋友参考一下 示例 要创建纯JSON表,您需要提供一个类型为的字段JSONB: 您还应该创建一个基本索引: 此时,您可以将数据插入表中并进行有效查询。
问题内容: 我有一个名为的表,我想对它们进行排序,以表最填写的顺序。每个列都是JSONB列或TEXT列。我并不需要很确定,因此通常我按以下顺序订购: 但是,这很慢,因此我想创建一个索引。但是,这不起作用: 也没有 不能说我很惊讶。声明此索引的正确方法是什么? 问题答案: 要测量文本表示形式中行的大小,您可以将整个行都转换为文本,这比连接单个列要快得多: 但是索引中的此表达式存在3(或4)个问题:
如何创建将不同列与不同表合并的视图?例如,我有三个表:用户、物品和礼物(在本例中,这是一个用户可以向另一个用户赠送礼物的系统) < code>users表包含有关用户的信息,< code>items表包含有关项目的信息,< code>gifts表显示哪个用户向哪个用户发送了什么礼物。 我想要的是创建如下视图:
PostgreSQL 使用 CREATE TABLE 语句来创建数据库表格。 语法 CREATE TABLE 语法格式如下: CREATE TABLE 是一个关键词,用于告诉数据库系统将创建一个数据表。 表名字必需在同一模式中的其它表、 序列、索引、视图或外部表名字中唯一。 CREATE TABLE 在当前数据库创建一个新的空白表,该表将由发出此命令的用户所拥有。 表格中的每个字段都会定义数据类型
问题内容: 我有两个要从中提取数据的表。这是我所拥有的最小的娱乐: 因此,发生的事情是我最终要为每个Job_Number的每个不同的Charge_Code和Charge_Amount获取一行。该行上的其他所有内容都相同。是否有可能使它返回更类似的内容: 等等? 这样,它就为每个职位编号创建了一行,并且每个相关的费用和金额都在同一行上。我一直在阅读W3,但无法确切地说出这是否可行。有什么帮助,谢谢!
我在Python中制作了一个游戏服务器,它使用心理学2连接到PostgreSQL数据库。我看到的例子,我看到当一个连接到一个数据库被创建,应该关闭连接时完成查询,例如每个客户端: 好的,当我启动服务器时,我有: 在我的课堂里 也就是说,我对来自所有客户的所有查询使用相同的连接对象,并且从不关闭连接,这看起来比为每个客户打开和关闭连接要好,我的服务器显然工作得很好。你想到这个了吗?这个做得好吗?不做