Skip to content

Commit

Permalink
docs(backends): document memtable support and performance for each ba…
Browse files Browse the repository at this point in the history
…ckend
  • Loading branch information
cpcloud committed Aug 1, 2023
1 parent 8966b5d commit b321733
Show file tree
Hide file tree
Showing 20 changed files with 66 additions and 0 deletions.
3 changes: 3 additions & 0 deletions docs/backends/bigquery.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,15 @@
backend_name: Google BigQuery
backend_url: https://cloud.google.com/bigquery
exports: ["PyArrow", "Parquet", "CSV", "Pandas"]
memtable_impl: fallback
---

# BigQuery

{% include 'backends/badges.md' %}

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the BigQuery backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/clickhouse.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ backend_name: ClickHouse
backend_url: https://clickhouse.yandex/
backend_module: clickhouse
exports: ["PyArrow", "Parquet", "CSV", "Pandas"]
memtable_impl: native
---

# ClickHouse

{% include 'backends/badges.md' %}

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the ClickHouse backend:
Expand Down
1 change: 1 addition & 0 deletions docs/backends/dask.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ backend_name: Dask
backend_url: https://dask.org
backend_module: dask
backend_param_style: a dictionary of paths
memtable_impl: native
---

{% include 'backends/template.md' %}
3 changes: 3 additions & 0 deletions docs/backends/datafusion.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ backend_module: datafusion
version_added: "2.1"
exports: ["PyArrow", "Parquet", "Delta Lake", "CSV", "Pandas"]
imports: ["CSV", "Parquet", "Delta Lake"]
memtable_impl: not_implemented
---

# DataFusion

{% include 'backends/badges.md' %}

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the Apache Datafusion backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/druid.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ backend_name: Druid
backend_url: https://druid.apache.org/
backend_module: druid
exports: ["PyArrow", "Parquet", "CSV", "Pandas"]
memtable_impl: fallback
---

# Druid
Expand All @@ -13,6 +14,8 @@ exports: ["PyArrow", "Parquet", "CSV", "Pandas"]

The Druid backend is experimental and is subject to backwards incompatible changes.

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the Druid backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/duckdb.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ imports:
"SQLite",
"Postgres",
]
memtable_impl: native
---

# DuckDB
Expand All @@ -28,6 +29,8 @@ imports:
See [this issue](https://github.com/ibis-project/ibis/issues/4503) for
more details.

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the DuckDB backend:
Expand Down
1 change: 1 addition & 0 deletions docs/backends/impala.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ intro: |
without requiring you to switch back and forth between Python code and the
Impala shell.
exclude_backend_api: true
memtable_impl: fallback
---

{% include 'backends/template.md' %}
Expand Down
18 changes: 18 additions & 0 deletions docs/backends/memtable-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
{% set memtable_badges = {"native": "56ae57", "fallback": "goldenrod", "none": "ff6961"} %}

## `ibis.memtable` Support ![memtable](https://img.shields.io/badge/{{ memtable_impl }}-{{ memtable_badges[memtable_impl] }})

{% if memtable_impl == "not_implemented" %}

The {{ backend_name }} does not currently support in-memory tables.

Please [file an issue](https://github.com/ibis-project/ibis/issues/new/choose)
if you'd like the {{ backend_name }} to support in-memory tables.

{% else %}

The {{ backend_name }} backend supports `memtable`s {% if memtable_impl == "fallback" %} by constructing a string with the contents of the in-memory object. **This will be very inefficient for medium to large in-memory tables**. Please [file an issue](https://github.com/ibis-project/ibis/issues/new/choose) if you observe performance issues when using in-memory tables. {% elif memtable_impl == "native" %} by natively executing queries against the underlying storage (e.g., pyarrow Tables or pandas DataFrames).

{% endif %}

{% endif %}
3 changes: 3 additions & 0 deletions docs/backends/mssql.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ backend_module: mssql
backend_param_style: connection parameters
version_added: "4.0"
exports: ["PyArrow", "Parquet", "CSV", "Pandas"]
memtable_impl: fallback
---

# MSSQL

{% include 'backends/badges.md' %}

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the MSSQL backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/mysql.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ backend_url: https://www.mysql.com/
backend_module: mysql
backend_param_style: a SQLAlchemy-style URI
exports: ["PyArrow", "Parquet", "CSV", "Pandas"]
memtable_impl: fallback
---

# MySQL

{% include 'backends/badges.md' %}

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the MySQL backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/oracle.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ backend_connection_example: ibis.connect("oracle://user:pass@host:port/service_n
is_experimental: true
version_added: "6.0"
exports: ["PyArrow", "Parquet", "CSV", "Pandas"]
memtable_impl: fallback
---

# Oracle
Expand All @@ -17,6 +18,8 @@ exports: ["PyArrow", "Parquet", "CSV", "Pandas"]

The Oracle backend is experimental and is subject to backwards incompatible changes.

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the Oracle backend:
Expand Down
1 change: 1 addition & 0 deletions docs/backends/pandas.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ intro: Ibis's pandas backend is available in core Ibis.
backend_param_style: a dictionary of paths
do_connect_base: BasePandasBackend
is_core: true
memtable_impl: native
---

{% include 'backends/template.md' %}
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/polars.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ is_experimental: true
version_added: "4.0"
exports: ["PyArrow", "Parquet", "Delta Lake", "CSV", "Pandas"]
imports: ["CSV", "Parquet", "Delta Lake", "Pandas"]
memtable_impl: native
---

# Polars
Expand All @@ -16,6 +17,8 @@ imports: ["CSV", "Parquet", "Delta Lake", "Pandas"]

The Polars backend is experimental and is subject to backwards incompatible changes.

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the Polars backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/postgresql.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,15 @@ backend_url: https://www.postgresql.org/
backend_module: postgres
backend_param_style: a SQLAlchemy-style URI
exports: ["PyArrow", "Parquet", "CSV", "Pandas"]
memtable_impl: native
---

# PostgreSQL

{% include 'backends/badges.md' %}

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the Postgres backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/pyspark.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,15 @@ backend_module: pyspark
backend_param_style: PySpark things
exports: ["PyArrow", "Parquet", "Delta Lake", "Pandas"]
imports: ["CSV", "Parquet", "Delta Lake"]
memtable_impl: native
---

# PySpark

{% include 'backends/badges.md' %}

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the PySpark backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/snowflake.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
backend_name: Snowflake
backend_url: https://snowflake.com/
exports: ["PyArrow", "Parquet", "CSV", "Pandas"]
memtable_impl: native
---

# Snowflake
Expand All @@ -12,6 +13,8 @@ exports: ["PyArrow", "Parquet", "CSV", "Pandas"]

The Snowflake backend is experimental and is subject to backwards incompatible changes.

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the Snowflake backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/sqlite.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,12 +3,15 @@ backend_name: SQLite
backend_url: https://www.sqlite.org/
backend_module: sqlite
imports: ["CSV", "Parquet", "JSON", "PyArrow", "Pandas", "SQLite", "Postgres"]
memtable_impl: fallback
---

# SQLite

{% include 'backends/badges.md' %}

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the SQLite backend:
Expand Down
2 changes: 2 additions & 0 deletions docs/backends/template.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@

{% if not (development_only | default(False)) %}

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the {{ backend_name }} backend:
Expand Down
3 changes: 3 additions & 0 deletions docs/backends/trino.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ backend_name: Trino
backend_url: https://trino.io
backend_module: trino
exports: ["PyArrow", "Parquet", "CSV", "Pandas"]
memtable_impl: fallback
---

# Trino
Expand All @@ -13,6 +14,8 @@ exports: ["PyArrow", "Parquet", "CSV", "Pandas"]

The Trino backend is experimental and is subject to backwards incompatible changes.

{% include 'backends/memtable-template.md' %}

## Install

Install `ibis` and dependencies for the Trino backend:
Expand Down
1 change: 1 addition & 0 deletions mkdocs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ plugins:
- exclude:
glob:
- backends/template.md
- backends/memtable-template.md
- backends/badges.md
- backends/*_support_matrix.csv
- backends/app/*
Expand Down

0 comments on commit b321733

Please sign in to comment.