对查询提出了新的要求,并且在很大程度上是通过反复试验找到我的脚的。
我已经建立了一个主查询,该查询返回了覆盖不同区域的2000行数据。我想在每个区域的不同选项卡上创建子报告。通过复制原始表并对每个新查询在区域上应用过滤器,我可以轻松地做到这一点。由于我的s / s已经是10mb,因此我试图在性能方面尽可能高效地做到这一点。我知道我也可以通过创建对主查询的“仅引用”而不是复制和过滤主查询(因此使用不同的过滤器创建10个版本的主查询)来做到这一点。
我一直在尝试通过“查询/引用”菜单执行此操作,但是不确定是否以“仅连接”查询结束,因为它在右侧的“查询”面板中没有显示。
无论如何,我想问题是: 1.查询和“仅连接”查询之间有什么区别(特别是在性能/电子表格大小方面)? 2.什么时候最好使用“仅连接”查询? 3.如何创建“仅连接”查询(最好通过菜单而不是代码),以及如何检查查询是否仅是连接?
答案 0 :(得分:1)
...
try:
conn = psycopg2.connect(user=settings.RIPPLEET_USER,password=settings.RIPPLEET_PASS,host=settings.PSQL_HOST,port=settings.PSQL_PORT,database=settings.PSQL_DB)
cursor = conn.cursor()
# insert ops
# check if the data is already separated
print d['user']['screen_name']
# insert data into table
sqlquery = ''' INSERT INTO rippleet_tweet (SCREENNAME, TWEET, HASHTAGS, WORDCOUNTS) VALUES (%s,%s,%s,%s,%d) '''
cursor.execute(sqlquery, (str(d['user']['screen_name'].encode('utf-8')), str(d['extended_tweet']['full_text'].encode('utf-8')), str(d['entities']['hashtags']['text']), len(str(d['extended_tweet']['full_text'].encode('utf-8')).split())))
conn.commit()
count = cursor.rowcount
print (count, " Record inserted successfully into table")
except (Exception, psycopg2.Error) as error:
if(conn):
print("Failed to insert record into table", error)
finally:
#closing database connection.
if(conn):
cursor.close()
conn.close()
print(" [*] PostgreSQL connection is closed")
...
表示未在任何地方实现数据。其他查询可能仍会引用它,但没有将数据加载到工作表表或数据模型中。
您可以使用Connection only
对话框控制查询的行为,该对话框由 Query Editor 的Load To
或 Workbook的Close and Load To
调用查询窗格。
仅连接查询会减小工作簿的大小-经验法则是除非您确实需要,否则不要实现任何查询。在您的示例中,您似乎想实现每个区域查询,但是除非您还需要所有区域的主表,否则“主”查询可能仅是连接。
就性能和规模而言,只将主查询加载到数据模型中,并在报表上使用区域切片器,这才有意义。