kedro.io.SQLQueryDataSet

class kedro.io.SQLQueryDataSet(sql, credentials, load_args=None)[source]

SQLQueryDataSet loads data from a provided SQL query. It uses pandas.DataFrame internally, so it supports all allowed pandas options on read_sql_query.

It does not support save method so it is a read only data set. To save data to a SQL server use SQLTableDataSet.

Example:

from kedro.io import SQLQueryDataSet
import pandas as pd

data = pd.DataFrame({'col1': [1, 2], 'col2': [4, 5],
                     'col3': [5, 6]})
sql="SELECT * FROM table_a"
credentials = {
         con: "postgresql://scott:tiger@localhost/test"
}
data_set = SQLQueryDataSet(sql=sql,
                           credentials=credentials)

sql_data = data_set.load()
__init__(sql, credentials, load_args=None)[source]

Creates a new SQLQueryDataSet.

Parameters:
  • sql (str) – The sql query statement.
  • credentials (Dict[str, Any]) – A dictionary with a SQLAlchemy connection string. Users are supposed to provide the connection string ‘con’ through credentials. It overwrites con parameter in load_args and save_args in case it is provided.
  • load_args (Optional[Dict[str, Any]]) – Provided to underlying pandas read_sql_query function along with the connection string. To find all supported arguments, see here: https://pandas.pydata.org/pandas-docs/stable/generated/pandas.read_sql_query.html
Raises:

DataSetError – When either sql or con parameters is emtpy.

Return type:

None

Methods

__init__(sql, credentials[, load_args]) Creates a new SQLQueryDataSet.
from_config(name, config[, load_version, …]) Create a data set instance using the configuration provided.
load() Loads data by delegation to the provided load method.
save(data) Saves data by delegation to the provided save method.