marimo هو دفتر ملاحظات تفاعلي مفتوح المصدر لـ بايثون مع دعم SQL مدمج. عند تشغيل خلية أو التفاعل مع عنصر في واجهة المستخدم، يشغّل marimo تلقائيًا الخلايا المتأثرة (أو يوسمها بأنها غير محدّثة)، مما يحافظ على اتساق الشيفرة والمخرجات ويمنع الأخطاء قبل وقوعها. يُحفَظ كل دفتر ملاحظات في marimo بصيغة بايثون خالصة، ويكون قابلاً للتنفيذ كبرنامج نصي، وقابلاً للنشر كتطبيق.

تثبيت marimo مع دعم SQL
pip install "marimo[sql]" clickhouse_connect
marimo edit clickhouse_demo.pyمن المفترض أن يفتح هذا متصفح ويب يعمل على localhost.
الاتصال بـ ClickHouse.
انتقل إلى لوحة مصادر البيانات على الجانب الأيسر من محرر marimo وانقر على "Add database".

سيُطلب منك إدخال تفاصيل قاعدة البيانات.

بعد ذلك، ستظهر لك خلية يمكن تشغيلها لإنشاء اتصال.

تشغيل SQL
بمجرد إعداد اتصال، يمكنك إنشاء خلية SQL جديدة واختيار محرك ClickHouse.

في هذا الدليل، سنستخدم مجموعة بيانات New York Taxi.
CREATE TABLE trips (
trip_id UInt32,
pickup_datetime DateTime,
dropoff_datetime DateTime,
pickup_longitude Nullable(Float64),
pickup_latitude Nullable(Float64),
dropoff_longitude Nullable(Float64),
dropoff_latitude Nullable(Float64),
passenger_count UInt8,
trip_distance Float32,
fare_amount Float32,
extra Float32,
tip_amount Float32,
tolls_amount Float32,
total_amount Float32,
payment_type Enum('CSH' = 1, 'CRE' = 2, 'NOC' = 3, 'DIS' = 4, 'UNK' = 5),
pickup_ntaname LowCardinality(String),
dropoff_ntaname LowCardinality(String)
)
ENGINE = MergeTree
PRIMARY KEY (pickup_datetime, dropoff_datetime);INSERT INTO trips
SELECT
trip_id,
pickup_datetime,
dropoff_datetime,
pickup_longitude,
pickup_latitude,
dropoff_longitude,
dropoff_latitude,
passenger_count,
trip_distance,
fare_amount,
extra,
tip_amount,
tolls_amount,
total_amount,
payment_type,
pickup_ntaname,
dropoff_ntaname
FROM gcs(
'https://storage.googleapis.com/clickhouse-public-datasets/nyc-taxi/trips_0.gz',
'TabSeparatedWithNames'
);SELECT * FROM trips LIMIT 1000;
الآن يمكنك عرض النتائج في إطار بيانات. أودّ تصور أعلى نقاط النزول تكلفةً انطلاقًا من موقع التقاط معيّن. يوفّر marimo عدة مكوّنات لواجهة المستخدم لمساعدتك. سأستخدم قائمة منسدلة لاختيار الموقع وaltair لإنشاء المخططات.

يمتد نموذج التنفيذ التفاعلي في marimo إلى استعلامات SQL أيضًا، لذا فإن التغييرات التي تُجريها على SQL ستُشغّل تلقائيًا العمليات الحسابية اللاحقة للخلايا التابعة (أو يمكن اختياريًا تمييز الخلايا على أنها غير محدّثة في حال كانت العمليات الحسابية مكلفة). لذلك يتغير المخطط والجدول عند تحديث الاستعلام.
يمكنك أيضًا تبديل App View للحصول على واجهة نظيفة لاستكشاف بياناتك.
