8

SQL クエリを実行してデータフレームを返す関数があるとします。

import pandas.io.sql as psql
import sqlalchemy

query_string = "select a from table;"

def run_my_query(my_query):
    # username, host, port and database are hard-coded here
    engine = sqlalchemy.create_engine('postgresql://{username}@{host}:{port}/{database}'.format(username=username, host=host, port=port, database=database))

    df = psql.read_sql(my_query, engine)
    return df

# Run the query (this is what I want to memoize)
df = run_my_query(my_query)

私はしたいと思います:

  1. query_stringの値ごとに(つまり、クエリごとに) 1 つのキャッシュ エントリを使用して、上記のクエリをメモ化できます。
  2. データベースが変更されたと思われる場合にキャッシュを更新できるように、必要に応じて (たとえば、フラグに基づいて)キャッシュを強制的にリセットできるようにします。

joblibjugでこれを行うにはどうすればよいですか?

4

1 に答える 1