atoti.Session.add_external_table()#

Session.add_external_table(external_table, /, table_name=None, *, columns={}, config=None)#

Add a table from an external database to the session.

Parameters:
  • external_table (ExternalTable[ExternalDatabaseConnectionConfigT]) – The external database table from which to build the session table. Instances of such tables are obtained through an external database connection.

  • table_name (str | None) – The name to give to the table in the session. If None, the name of the external table is used.

  • columns (Mapping[str, str]) – Mapping from external column names to local column names. If empty, the local columns will share the names of the external columns.

  • config (ExternalTableConfig[ExternalDatabaseConnectionConfigT] | None) – The config to add the external table. Each DirectQuery plugin has its own TableConfig class.

Return type:

Table

Example

>>> external_database = session.connect_to_external_database(connection_config)
>>> external_table = external_database.tables["TUTORIAL", "SALES"]
>>> list(external_table)
['SALE_ID', 'DATE', 'SHOP', 'PRODUCT', 'QUANTITY', 'UNIT_PRICE']

Add the external table, filtering out some columns and renaming the remaining ones:

>>> from atoti_directquery_snowflake import TableConfig
>>> table = session.add_external_table(
...     external_table,
...     columns={
...         "SALE_ID": "Sale ID",
...         "DATE": "Date",
...         "PRODUCT": "Product",
...         "QUANTITY": "Quantity",
...     },
...     config=TableConfig(keys={"Sale ID"}),
...     table_name="sales_renamed",
... )
>>> table.head().sort_index()
              Date Product  Quantity
Sale ID
S0007   2022-02-01   BED_2       1.0
S0008   2022-01-31   BED_2       1.0
S0009   2022-01-31   BED_2       1.0
S0010   2022-01-31   BED_2       3.0
S0019   2022-02-02   HOO_5       1.0