Passer au contenu principal
DataStore propose plus de 20 méthodes de fabrique pour créer des instances à partir de différentes sources de données, notamment des fichiers locaux, des bases de données, du stockage dans le cloud et des lacs de données.

Interface URI universelle

La méthode uri() est le point d’accès universel recommandé, qui détecte automatiquement le type de source :
from chdb.datastore import DataStore

# Local files
ds = DataStore.uri("data.csv")
ds = DataStore.uri("/path/to/data.parquet")

# Cloud storage
ds = DataStore.uri("s3://bucket/data.parquet?nosign=true")
ds = DataStore.uri("https://example.com/data.csv")

# Databases
ds = DataStore.uri("mysql://user:pass@host:3306/db/table")
ds = DataStore.uri("postgresql://user:pass@host:5432/db/table")

Référence de la syntaxe des URI

Type de sourceFormat d’URIExemple
Fichier localpath/to/filedata.csv, /abs/path/data.parquet
S3s3://bucket/paths3://mybucket/data.parquet?nosign=true
GCSgs://bucket/pathgs://mybucket/data.csv
Azureaz://container/pathaz://mycontainer/data.parquet
HTTP/HTTPShttps://urlhttps://example.com/data.csv
MySQLmysql://user:pass@host:port/db/tablemysql://root:pass@localhost:3306/mydb/users
PostgreSQLpostgresql://user:pass@host:port/db/tablepostgresql://postgres:pass@localhost:5432/mydb/users
SQLitesqlite:///path?table=namesqlite:///data.db?table=users
ClickHouseclickhouse://host:port/db/tableclickhouse://localhost:9000/default/hits

Sources de données de type fichier

from_file

Créer un DataStore à partir d’un fichier local ou distant, avec détection automatique du format.
DataStore.from_file(path, format=None, compression=None, **kwargs)
Paramètres :
ParamètreTypePar défautDescription
pathstrobligatoireChemin de fichier (local ou URL)
formatstrNoneFormat de fichier (détecté automatiquement si None)
compressionstrNoneType de compression (détecté automatiquement si None)
Formats pris en charge : CSV, TSV, Parquet, JSON, JSONLines, ORC, Avro, Arrow Exemples :
from chdb.datastore import DataStore

# Auto-detect format from extension
ds = DataStore.from_file("data.csv")
ds = DataStore.from_file("data.parquet")
ds = DataStore.from_file("data.json")

# Explicit format
ds = DataStore.from_file("data.txt", format="CSV")

# With compression
ds = DataStore.from_file("data.csv.gz", compression="gzip")

Fonctions de lecture compatibles avec Pandas

from chdb import datastore as pd

# CSV files
ds = pd.read_csv("data.csv")
ds = pd.read_csv("data.csv", sep=";", header=0, nrows=1000)

# Parquet files (recommended for large datasets)
ds = pd.read_parquet("data.parquet")
ds = pd.read_parquet("data.parquet", columns=['col1', 'col2'])

# JSON files
ds = pd.read_json("data.json")
ds = pd.read_json("data.jsonl", lines=True)

# Excel files
ds = pd.read_excel("data.xlsx", sheet_name="Sheet1")

Stockage Cloud

from_s3

Créer un DataStore depuis Amazon S3.
DataStore.from_s3(url, access_key_id=None, secret_access_key=None, format=None, **kwargs)
Paramètres :
ParamètreTypePar défautDescription
urlstrobligatoireURL S3 (s3://bucket/path)
access_key_idstrNoneID de la clé d’accès AWS
secret_access_keystrNoneClé d’accès secrète AWS
formatstrNoneFormat de fichier (détecté automatiquement)
Exemples :
from chdb.datastore import DataStore

# Anonymous access (public bucket)
ds = DataStore.from_s3("s3://bucket/data.parquet")

# With credentials
ds = DataStore.from_s3(
    "s3://bucket/data.parquet",
    access_key_id="AKIAIOSFODNN7EXAMPLE",
    secret_access_key="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY"
)

# Using URI with query parameters
ds = DataStore.uri("s3://bucket/data.parquet?nosign=true")
ds = DataStore.uri("s3://bucket/data.parquet?access_key_id=KEY&secret_access_key=SECRET")

from_gcs

Créer un DataStore depuis Google Cloud Storage.
DataStore.from_gcs(url, credentials_path=None, **kwargs)
Exemples :
ds = DataStore.from_gcs("gs://bucket/data.parquet")
ds = DataStore.from_gcs("gs://bucket/data.parquet", credentials_path="/path/to/creds.json")

from_azure

Créer un DataStore depuis Azure Blob Storage.
DataStore.from_azure(url, account_name=None, account_key=None, **kwargs)
Exemples :
ds = DataStore.from_azure(
    "az://container/data.parquet",
    account_name="myaccount",
    account_key="mykey"
)

from_hdfs

Créer un DataStore depuis HDFS.
DataStore.from_hdfs(url, **kwargs)
Exemples :
ds = DataStore.from_hdfs("hdfs://namenode:8020/path/data.parquet")

from_url

Créer un DataStore à partir d’une URL HTTP/HTTPS.
DataStore.from_url(url, format=None, **kwargs)
Exemples :
ds = DataStore.from_url("https://example.com/data.csv")
ds = DataStore.from_url("https://raw.githubusercontent.com/user/repo/main/data.parquet")

Bases de données

from_mysql

Créer un DataStore à partir d’une base de données MySQL.
DataStore.from_mysql(host, database, table, user, password, port=3306, **kwargs)
Paramètres :
ParamètreTypePar défautDescription
hoststrobligatoireHôte MySQL
databasestrobligatoireNom de la base de données
tablestrobligatoireNom de la table
userstrobligatoireNom d’utilisateur
passwordstrobligatoireMot de passe
portint3306Numéro de port
Exemples :
ds = DataStore.from_mysql(
    host="localhost",
    database="mydb",
    table="users",
    user="root",
    password="password"
)

# Using URI
ds = DataStore.uri("mysql://root:password@localhost:3306/mydb/users")

from_postgresql

Créer un DataStore à partir d’une base de données PostgreSQL.
DataStore.from_postgresql(host, database, table, user, password, port=5432, **kwargs)
Exemples :
ds = DataStore.from_postgresql(
    host="localhost",
    database="mydb",
    table="users",
    user="postgres",
    password="password"
)

# Using URI
ds = DataStore.uri("postgresql://postgres:password@localhost:5432/mydb/users")

from_clickhouse

Créer un DataStore à partir du serveur ClickHouse.
DataStore.from_clickhouse(host, database, table, user=None, password=None, port=9000, **kwargs)
Exemples :
ds = DataStore.from_clickhouse(
    host="localhost",
    database="default",
    table="hits",
    user="default",
    password=""
)

# Connection-level mode (explore databases)
ds = DataStore.from_clickhouse(
    host="analytics.company.com",
    user="analyst",
    password="secret"
)
ds.databases()                  # List databases
ds.tables("production")         # List tables
result = ds.sql("SELECT * FROM production.users LIMIT 10")

from_mongodb

Crée un DataStore à partir de MongoDB.
DataStore.from_mongodb(uri, database, collection, **kwargs)
Exemples :
ds = DataStore.from_mongodb(
    uri="mongodb://localhost:27017",
    database="mydb",
    collection="users"
)

from_sqlite

Créez un DataStore à partir d’une base de données SQLite.
DataStore.from_sqlite(database_path, table, **kwargs)
Exemples :
ds = DataStore.from_sqlite("data.db", table="users")

# Using URI
ds = DataStore.uri("sqlite:///data.db?table=users")

Lacs de données

from_iceberg

Créer un DataStore à partir d’une table Iceberg Apache.
DataStore.from_iceberg(path, **kwargs)
Exemples :
ds = DataStore.from_iceberg("/path/to/iceberg_table")
ds = DataStore.uri("iceberg://catalog/namespace/table")

from_delta

Créer un DataStore à partir d’une table Delta Lake.
DataStore.from_delta(path, **kwargs)
Exemples :
ds = DataStore.from_delta("/path/to/delta_table")
ds = DataStore.uri("deltalake:///path/to/delta_table")

from_hudi

Créer un DataStore à partir d’une table Apache Hudi.
DataStore.from_hudi(path, **kwargs)
Exemples :
ds = DataStore.from_hudi("/path/to/hudi_table")
ds = DataStore.uri("hudi:///path/to/hudi_table")

Sources en mémoire

from_df / from_dataframe

Créer un DataStore à partir d’un DataFrame pandas.
DataStore.from_df(df, name=None)
DataStore.from_dataframe(df, name=None)  # alias
Exemples :
import pandas
from chdb.datastore import DataStore

pdf = pandas.DataFrame({'a': [1, 2, 3], 'b': ['x', 'y', 'z']})
ds = DataStore.from_df(pdf)

Constructeur DataFrame

Créez un DataStore à l’aide d’un constructeur similaire à ceux de pandas.
from chdb import datastore as pd

# From dictionary
ds = pd.DataFrame({
    'name': ['Alice', 'Bob'],
    'age': [25, 30]
})

# From pandas DataFrame
import pandas
pdf = pandas.DataFrame({'a': [1, 2, 3]})
ds = pd.DataFrame(pdf)

Sources spéciales

from_numbers

Crée un DataStore avec des nombres séquentiels (utile pour les tests).
DataStore.from_numbers(count, **kwargs)
Exemples :
ds = DataStore.from_numbers(1000000)  # 1M rows with 'number' column
result = ds.filter(ds['number'] % 2 == 0).head(10)  # Even numbers

from_random

Créez un DataStore à partir de données aléatoires.
DataStore.from_random(rows, columns, **kwargs)
Exemples :
ds = DataStore.from_random(rows=1000, columns=5)

run_sql

Créer un DataStore à partir d’une requête Raw SQL.
DataStore.run_sql(query)
Exemples :
ds = DataStore.run_sql("""
    SELECT number, number * 2 as doubled
    FROM numbers(100)
    WHERE number % 10 = 0
""")

Tableau récapitulatif

MéthodeType de sourceExemple
uri()UniverselDataStore.uri("s3://bucket/data.parquet")
from_file()Fichiers locaux/distantsDataStore.from_file("data.csv")
read_csv()Fichiers CSVpd.read_csv("data.csv")
read_parquet()Fichiers Parquetpd.read_parquet("data.parquet")
from_s3()Amazon S3DataStore.from_s3("s3://bucket/path")
from_gcs()Google Cloud StorageDataStore.from_gcs("gs://bucket/path")
from_azure()Azure BlobDataStore.from_azure("az://container/path")
from_hdfs()HDFSDataStore.from_hdfs("hdfs://host/path")
from_url()HTTP/HTTPSDataStore.from_url("https://example.com/data.csv")
from_mysql()MySQLDataStore.from_mysql(host, db, table, user, pass)
from_postgresql()PostgreSQLDataStore.from_postgresql(host, db, table, user, pass)
from_clickhouse()ClickHouseDataStore.from_clickhouse(host, db, table)
from_mongodb()MongoDBDataStore.from_mongodb(uri, db, collection)
from_sqlite()SQLiteDataStore.from_sqlite("data.db", table)
from_iceberg()Apache IcebergDataStore.from_iceberg("/path/to/table")
from_delta()Delta LakeDataStore.from_delta("/path/to/table")
from_hudi()Apache HudiDataStore.from_hudi("/path/to/table")
from_df()pandas DataFrameDataStore.from_df(pandas_df)
DataFrame()Dictionnaire / DataFramepd.DataFrame({'a': [1, 2, 3]})
from_numbers()Nombres séquentielsDataStore.from_numbers(1000000)
from_random()Données aléatoiresDataStore.from_random(rows=1000, columns=5)
run_sql()SQL brutDataStore.run_sql("SELECT * FROM ...")
Dernière modification le 29 juin 2026