الانتقال إلى المحتوى الرئيسي
يوفّر 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/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

مصادر الملفات

from_file

أنشئ DataStore من ملف محلي أو ملف عن بُعد مع اكتشاف الصيغة تلقائيًا.
DataStore.from_file(path, format=None, compression=None, **kwargs)
المعلمات:
المعلمةالنوعالافتراضيالوصف
pathstrمطلوبمسار الملف (محلي أو عنوان URL)
formatstrNoneتنسيق الملف (يُكتشف تلقائيًا إذا كانت القيمة None)
compressionstrNoneنوع الضغط (يُكتشف تلقائيًا إذا كانت القيمة 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)
المعلمات:
المعاملالنوعالافتراضيالوصف
urlstrمطلوبعنوان URL لـ S3 ‏(s3://bucket/path)
access_key_idstrNoneمعرّف مفتاح الوصول لـ AWS
secret_access_keystrNoneمفتاح الوصول السري لـ AWS
formatstrNoneتنسيق الملف (يُكتشف تلقائيًا)
أمثلة:
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)
المعلمات:
المعلمةالنوعالافتراضيالوصف
hoststrمطلوبمضيف MySQL
databasestrمطلوباسم قاعدة البيانات
tablestrمطلوباسم الجدول
userstrمطلوباسم المستخدم
passwordstrمطلوبكلمة المرور
portint3306رقم المنفذ
أمثلة:
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 numbers

from_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()ملفات CSVpd.read_csv("data.csv")
read_parquet()ملفات 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()قاموس / DataFramepd.DataFrame({'a': [1, 2, 3]})
from_numbers()أرقام متسلسلةDataStore.from_numbers(1000000)
from_random()بيانات عشوائيةDataStore.from_random(rows=1000, columns=5)
run_sql()Raw SQLDataStore.run_sql("SELECT * FROM ...")
آخر تعديل في ٢٩ يونيو ٢٠٢٦