限制为10万行

时间:2019-06-04 17:06:07

标签: python dataframe pypyodbc

我正在查询历史数据库,结果表应该有大约144k行,但是我将结果限制为10万行。使用ODBC连接到同一数据库但使用VBA .NET应用程序时,我似乎已经出现了此问题。

我在DB SQL客户端中测试了相同的查询,它返回正确的行数。唯一看起来令人怀疑的是,该客户端对其接口上显示的行数有限制,默认值为100k。

import pypyodbc as pyodbc
import pandas as pd
import gc
import time

def GetTrend(tags,server,t_ini,t_end,period):

    IP21_connection = 'DRIVER={{AspenTech SQLplus}};HOST={};PORT=10014'
    IP21_Query = """select ts,avg from aggregates where name = '{}'
                and ts between '{}' and '{}'
                and period = 10*{}"""

    conn = pyodbc.connect(IP21_connection.format(server))
    cur = conn.cursor()
    df2=pd.DataFrame()
    i=0
    for tag in tags:
        cur.execute(IP21_Query.format(tag,t_ini,t_end,period))
        df = pd.DataFrame(cur.fetchall(),columns=['ts',tag])
        df['ts'] = pd.to_datetime(df['ts'])
        df1=df.set_index('ts')

        df2=pd.concat([df2,df1],axis=1)
        i+=1
        print('{} - {} of {} tags'
              ' collected'.format(time.asctime(time.localtime()), i,
                                  len(tags)), flush=True)

        gc.collect()

在查询数据库的这段时间内,我希望有144k行,但我只能得到10万行。

0 个答案:

没有答案