Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

دوال المصنع في DataStore

يوفّر 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 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() ملفات 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 ...")
Navigation