Фабричные методы DataStore
DataStore предоставляет более 20 фабричных методов для создания экземпляров DataStore на основе различных источников данных, включая локальные файлы, базы данных, облачное хранилище и озера данных.
Универсальный интерфейс URI
Метод uri() — рекомендуемая универсальная точка входа, автоматически определяющая тип источника:
Справочник по синтаксису URI
| Тип источника | Формат URI | Пример |
|---|---|---|
| Локальный файл | path/to/file | data.csv, /abs/path/data.parquet |
| S3 | s3://bucket/path | s3://mybucket/data.parquet?nosign=true |
| GCS | gs://bucket/path | gs://mybucket/data.csv |
| Azure | az://container/path | az://mycontainer/data.parquet |
| HTTP/HTTPS | https://url | https://example.com/data.csv |
| MySQL | mysql://user:pass@host:port/db/table | mysql://root:pass@localhost:3306/mydb/users |
| PostgreSQL | postgresql://user:pass@host:port/db/table | postgresql://postgres:pass@localhost:5432/mydb/users |
| SQLite | sqlite:///path?table=name | sqlite:///data.db?table=users |
| ClickHouse | clickhouse://host:port/db/table | clickhouse://localhost:9000/default/hits |
Файловые источники
from_file
Создаёт объект DataStore из локального или удалённого файла с автоматическим определением формата.
Параметры:
| Параметр | Тип | По умолчанию | Описание |
|---|---|---|---|
path | str | обязателен | Путь к файлу (локальный путь или URL) |
format | str | None | Формат файла (определяется автоматически, если None) |
compression | str | None | Тип сжатия (определяется автоматически, если None) |
Поддерживаемые форматы: CSV, TSV, Parquet, JSON, JSONLines, ORC, Avro, Arrow
Примеры:
Функции чтения, совместимые с Pandas
Облачное хранилище
from_s3
Создаёт DataStore на основе Amazon S3.
Параметры:
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
url | str | обязателен | S3 URL (s3://bucket/path) |
access_key_id | str | None | Идентификатор ключа доступа AWS |
secret_access_key | str | None | Секретный ключ доступа AWS |
format | str | None | Формат файла (определяется автоматически) |
Примеры:
from_gcs
Создаёт DataStore из Google Cloud Storage.
Примеры:
from_azure
Создаёт DataStore из Azure Blob Storage.
Примеры:
from_hdfs
Создаёт DataStore из HDFS.
Примеры:
from_url
Создаёт экземпляр DataStore из HTTP/HTTPS URL.
Примеры:
Базы данных
from_mysql
Создаёт DataStore из базы данных MySQL.
Параметры:
| Параметр | Тип | Значение по умолчанию | Описание |
|---|---|---|---|
host | str | обязателен | Хост MySQL |
database | str | обязателен | Имя базы данных |
table | str | обязателен | Имя таблицы |
user | str | обязателен | Имя пользователя |
password | str | обязателен | Пароль |
port | int | 3306 | Номер порта |
Примеры:
from_postgresql
Создаёт объект DataStore из базы данных PostgreSQL.
Примеры:
from_clickhouse
Создать DataStore на основе сервера ClickHouse.
Примеры:
from_mongodb
Создает DataStore на основе MongoDB.
Примеры:
from_sqlite
Создаёт DataStore на основе базы данных SQLite.
Примеры:
Озера данных
from_iceberg
Создает DataStore из таблицы Apache Iceberg.
Примеры:
from_delta
Создаёт объект DataStore из таблицы Delta Lake.
Примеры:
from_hudi
Создает DataStore из таблицы Apache Hudi.
Примеры:
Источники в оперативной памяти
from_df / from_dataframe
Создаёт объект DataStore из pandas DataFrame.
Примеры:
DataFrame Constructor
Создание DataStore с помощью конструктора, аналогичного pandas.
Специальные источники
from_numbers
Создаёт DataStore с последовательными числами (удобно для тестирования).
Примеры:
from_random
Создает DataStore со случайными данными.
Примеры:
run_sql
Создает DataStore из исходного SQL-запроса.
Примеры:
Сводная таблица
| Метод | Тип источника | Пример |
|---|---|---|
uri() | Универсальный | DataStore.uri("s3://bucket/data.parquet") |
from_file() | Локальные/удалённые файлы | DataStore.from_file("data.csv") |
read_csv() | Файлы CSV | pd.read_csv("data.csv") |
read_parquet() | Файлы Parquet | pd.read_parquet("data.parquet") |
from_s3() | Amazon S3 | DataStore.from_s3("s3://bucket/path") |
from_gcs() | Google Cloud Storage | DataStore.from_gcs("gs://bucket/path") |
from_azure() | Azure Blob | DataStore.from_azure("az://container/path") |
from_hdfs() | HDFS | DataStore.from_hdfs("hdfs://host/path") |
from_url() | HTTP/HTTPS | DataStore.from_url("https://example.com/data.csv") |
from_mysql() | MySQL | DataStore.from_mysql(host, db, table, user, pass) |
from_postgresql() | PostgreSQL | DataStore.from_postgresql(host, db, table, user, pass) |
from_clickhouse() | ClickHouse | DataStore.from_clickhouse(host, db, table) |
from_mongodb() | MongoDB | DataStore.from_mongodb(uri, db, collection) |
from_sqlite() | SQLite | DataStore.from_sqlite("data.db", table) |
from_iceberg() | Apache Iceberg | DataStore.from_iceberg("/path/to/table") |
from_delta() | Delta Lake | DataStore.from_delta("/path/to/table") |
from_hudi() | Apache Hudi | DataStore.from_hudi("/path/to/table") |
from_df() | DataFrame библиотеки pandas | DataStore.from_df(pandas_df) |
DataFrame() | словарь/DataFrame | pd.DataFrame({'a': [1, 2, 3]}) |
from_numbers() | Последовательные числа | DataStore.from_numbers(1000000) |
from_random() | Случайные данные | DataStore.from_random(rows=1000, columns=5) |
run_sql() | Сырой SQL | DataStore.run_sql("SELECT * FROM ...") |