Skip to main content
Version: 1.1.0

MySQLSource

class MySQLSource(
uri: str,
query: str | List[str],
credentials: dict | UserPasswordCredentials | None = None,
initial_values: dict | None = None,
)

Bases: SourcePlugin

Categories: source

Class for managing the configuration of MySQL-based data inputs.

Attributes: credentials (UserPasswordCredentials): The credentials required to access the MySQL database. initial_values (dict): The initial values for the parameters in the SQL queries. query (str | List[str]): The SQL query(s) to execute. If multiple queries are provided, they must be provided as a dictionary, with the parameter name in the registered function as the key and the SQL query as the value. uri (str): The URI of the database where the data is located.

Initializes the MySQLSource with the given URI and query, and optionally connection credentials and initial values for the parameters in the SQL queries.

Parameters

parameter
uristr

The URI of the database where the data is located

parameter
querystr | List[str]

The SQL query(s) to execute. If multiple queries are provided, they must be provided as a list, and they will be mapped to the function inputs in the same order as they are defined.

parameter
credentialsdict | UserPasswordCredentials, optional

The credentials required to access the MySQL database. Can be a dictionary or a UserPasswordCredentials object.

parameter
initial_valuesdict, optional

The initial values for the parameters in the SQL queries.

Raises

InputConfigurationError

Properties

property
credentialsUserPasswordCredentials | None

The credentials required to access the MySQLDatabase. If no credentials were provided, it will return None.

property
initial_valuesdict

The initial values for the parameters in the SQL queries.

property
querystr | List[str]

The SQL query(s) to execute.

property
uristr

The URI of the database where the data is located.

Methods

chunk
def chunk(working_dir: str) -> list[str]

Trigger the import of the data. This must be implemented in any class that inherits from this class unless directly implementing streaming. The method will receive a folder where it must store the data as parquet files, and return a list of the paths of the files created. This files will then be loaded and mapped to the dataset function in positional order, so if you want file.parquet to be the first argument of the dataset function, you must return it first. If you want a parameter to receive multiple files, return a list of the paths. For example, you would give the following return to provide a first argument with a single file and a second argument with two files: return ["file1.parquet", ["file2.parquet", "file3.parquet"]]

Parameters:

parameter
working_dirstr

The folder where the files must be stored

Returns:

Union[str, Tuple[str, ...], List[str]]: The path of the file(s) created, in the order they must be mapped to the dataset function