يوفّر DataStore أكثر من 20 من دوال المصنع لإنشاء مثيلات من مصادر بيانات متنوعة، بما في ذلك الملفات المحلية وقواعد البيانات والتخزين السحابي وبحيرات البيانات.
واجهة URI العامة
تُعد الدالة uri() واجهة الدخول العامة الموصى بها، إذ تكتشف نوع المصدر تلقائيًا:
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")مرجع صيغة 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 من ملف محلي أو ملف عن بُعد مع اكتشاف الصيغة تلقائيًا.
DataStore.from_file(path, format=None, compression=None, **kwargs)المعلمات:
| المعلمة | النوع | الافتراضي | الوصف |
|---|---|---|---|
path |
str | مطلوب | مسار الملف (محلي أو عنوان URL) |
format |
str | None |
تنسيق الملف (يُكتشف تلقائيًا إذا كانت القيمة None) |
compression |
str | None |
نوع الضغط (يُكتشف تلقائيًا إذا كانت القيمة None) |
التنسيقات المدعومة: CSV, TSV, Parquet, JSON, JSONLines, ORC, Avro, Arrow
أمثلة:
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")دوال القراءة المتوافقة مع 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")التخزين السحابي
from_s3
أنشئ DataStore من Amazon S3.
DataStore.from_s3(url, access_key_id=None, secret_access_key=None, format=None, **kwargs)المعلمات:
| المعامل | النوع | الافتراضي | الوصف |
|---|---|---|---|
url |
str | مطلوب | عنوان URL لـ S3 (s3://bucket/path) |
access_key_id |
str | None |
معرّف مفتاح الوصول لـ AWS |
secret_access_key |
str | None |
مفتاح الوصول السري لـ AWS |
format |
str | None |
تنسيق الملف (يُكتشف تلقائيًا) |
أمثلة:
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
أنشئ DataStore من خدمة Google Cloud Storage.
DataStore.from_gcs(url, credentials_path=None, **kwargs)أمثلة:
ds = DataStore.from_gcs("gs://bucket/data.parquet")
ds = DataStore.from_gcs("gs://bucket/data.parquet", credentials_path="/path/to/creds.json")from_azure
أنشئ DataStore من Azure Blob Storage.
DataStore.from_azure(url, account_name=None, account_key=None, **kwargs)أمثلة:
ds = DataStore.from_azure(
"az://container/data.parquet",
account_name="myaccount",
account_key="mykey"
)from_hdfs
إنشاء DataStore من HDFS.
DataStore.from_hdfs(url, **kwargs)أمثلة:
ds = DataStore.from_hdfs("hdfs://namenode:8020/path/data.parquet")from_url
أنشئ DataStore من عنوان URL يستخدم HTTP/HTTPS.
DataStore.from_url(url, format=None, **kwargs)أمثلة:
ds = DataStore.from_url("https://example.com/data.csv")
ds = DataStore.from_url("https://raw.githubusercontent.com/user/repo/main/data.parquet")قواعد البيانات
from_mysql
أنشئ DataStore من قاعدة بيانات MySQL.
DataStore.from_mysql(host, database, table, user, password, port=3306, **kwargs)المعلمات:
| المعلمة | النوع | الافتراضي | الوصف |
|---|---|---|---|
host |
str | مطلوب | مضيف MySQL |
database |
str | مطلوب | اسم قاعدة البيانات |
table |
str | مطلوب | اسم الجدول |
user |
str | مطلوب | اسم المستخدم |
password |
str | مطلوب | كلمة المرور |
port |
int | 3306 |
رقم المنفذ |
أمثلة:
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
أنشئ DataStore انطلاقًا من قاعدة بيانات PostgreSQL.
DataStore.from_postgresql(host, database, table, user, password, port=5432, **kwargs)أمثلة:
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
أنشئ DataStore من خادم ClickHouse.
DataStore.from_clickhouse(host, database, table, user=None, password=None, port=9000, **kwargs)أمثلة:
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
أنشئ DataStore من MongoDB.
DataStore.from_mongodb(uri, database, collection, **kwargs)أمثلة:
ds = DataStore.from_mongodb(
uri="mongodb://localhost:27017",
database="mydb",
collection="users"
)from_sqlite
إنشاء DataStore من قاعدة بيانات SQLite.
DataStore.from_sqlite(database_path, table, **kwargs)أمثلة:
ds = DataStore.from_sqlite("data.db", table="users")
# Using URI
ds = DataStore.uri("sqlite:///data.db?table=users")بحيرات البيانات
from_iceberg
أنشئ DataStore من جدول Apache Iceberg.
DataStore.from_iceberg(path, **kwargs)أمثلة:
ds = DataStore.from_iceberg("/path/to/iceberg_table")
ds = DataStore.uri("iceberg://catalog/namespace/table")from_delta
أنشئ DataStore انطلاقًا من جدول Delta Lake.
DataStore.from_delta(path, **kwargs)أمثلة:
ds = DataStore.from_delta("/path/to/delta_table")
ds = DataStore.uri("deltalake:///path/to/delta_table")from_hudi
أنشئ DataStore من جدول Apache Hudi.
DataStore.from_hudi(path, **kwargs)أمثلة:
ds = DataStore.from_hudi("/path/to/hudi_table")
ds = DataStore.uri("hudi:///path/to/hudi_table")المصادر في الذاكرة
from_df / from_dataframe
أنشئ DataStore من pandas DataFrame.
DataStore.from_df(df, name=None)
DataStore.from_dataframe(df, name=None) # aliasأمثلة:
import pandas
from chdb.datastore import DataStore
pdf = pandas.DataFrame({'a': [1, 2, 3], 'b': ['x', 'y', 'z']})
ds = DataStore.from_df(pdf)منشئ DataFrame
أنشئ DataStore باستخدام منشئ على غرار 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)المصادر الخاصة
from_numbers
أنشئ DataStore من أعداد متسلسلة (مفيد للاختبار).
DataStore.from_numbers(count, **kwargs)أمثلة:
ds = DataStore.from_numbers(1000000) # 1M rows with 'number' column
result = ds.filter(ds['number'] % 2 == 0).head(10) # Even numbersfrom_random
أنشئ DataStore باستخدام بيانات عشوائية.
DataStore.from_random(rows, columns, **kwargs)أمثلة:
ds = DataStore.from_random(rows=1000, columns=5)run_sql
أنشئ DataStore من استعلام Raw SQL.
DataStore.run_sql(query)أمثلة:
ds = DataStore.run_sql("""
SELECT number, number * 2 as doubled
FROM numbers(100)
WHERE number % 10 = 0
""")جدول الملخص
| الطريقة | نوع المصدر | مثال |
|---|---|---|
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() |
pandas DataFrame | 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() |
Raw SQL | DataStore.run_sql("SELECT * FROM ...") |