← يتطلب: ObjectScript المتقدمة البرمجة متوسط ⏱ 6 ساعات الدورة 09

استخدام Python مع آيريس

Python with IRIS

🎯 أهداف التعلم

1تضمين Python في IRIS
2الوصول لبيانات IRIS من Python
3دمج مكتبات ML
4بناء APIs مع Flask

01 تضمين Python

تدعم IRIS تضمين Python مباشرة.

ClassMethod UsePython() {
  // Python embedded in ObjectScript
  &python<
import iris
conn = iris.connect('localhost', 52773, 'USER', '_SYSTEM', 'SYS')
cursor = conn.cursor()
cursor.execute('SELECT Name FROM Employee')
for row in cursor:
    print(row[0])
conn.close()
  >
}

02 دمج ML مع IRIS

بناء نماذج ML وتخزينها في IRIS.

import pandas as pd
from sklearn.ensemble import RandomForestClassifier
import joblib
import irisnative

conn = irisnative.createConnection('localhost', 52773, 'USER', '_SYSTEM', 'SYS')
df = pd.read_sql('SELECT * FROM PatientData', conn)
model = RandomForestClassifier(n_estimators=100)
model.fit(df[features], df['target'])
model_bytes = joblib.dumps(model)
iris = irisnative.createIris(conn)
iris.set(model_bytes, '^MLModels', 'risk_model')

03 تحليل البيانات مع Pandas

Pandas هي مكتبة قوية لتحليل البيانات. يمكن استخدامها مع IRIS.

import pandas as pd
from sqlalchemy import create_engine

# الاتصال بـ IRIS
engine = create_engine('iris://_SYSTEM:SYS@localhost:52773/USER')

# قراءة بيانات
pd.read_sql("""
  SELECT e.Name, e.Salary, d.Name as Dept
  FROM Employee e
  JOIN Department d ON e.DeptId = d.ID
""", engine)

# تحليل إحصائي
dept_stats = df.groupby('Dept').agg({
    'Salary': ['mean', 'min', 'max', 'count']
}).round(2)

print(dept_stats)

# تصدير النتائج
df.to_sql('Analytics', engine, if_exists='replace')

04 بناء REST API مع FastAPI

FastAPI إطار عمل حديث لبناء APIs سريعة مع Python.

from fastapi import FastAPI
import irisnative

app = FastAPI(title="IRIS Academy API")

def get_db():
    return irisnative.createConnection(
        'localhost', 52773, 'USER', '_SYSTEM', 'SYS'
    )

@app.get("/employees")
def list_employees(dept: str = None):
    conn = get_db()
    query = "SELECT ID, Name, Department FROM Employee"
    if dept:
        query += f" WHERE Department = '{dept}'"
    cursor = conn.cursor()
    cursor.execute(query)
    return [{"id": r[0], "name": r[1], "dept": r[2]} for r in cursor]

@app.post("/employees")
def create_employee(name: str, dept: str, salary: float):
    conn = get_db()
    cursor = conn.cursor()
    cursor.execute(
        "INSERT INTO Employee (Name, Department, Salary) VALUES (?, ?, ?)",
        [name, dept, salary]
    )
    conn.commit()
    return {"status": "created"}

📝 اختبار التحقق

1. كيف يمكن تضمين Python في ObjectScript؟

يمكن تضمين Python باستخدام embedded syntax

أي مكتبة تُستخدم للاتصال بـ IRIS عبر SQLAlchemy؟

intersystems-irispython توفر driver للاتصال بـ IRIS عبر SQLAlchemy

ما هو FastAPI؟

FastAPI هو إطار عمل حديث وسريع لبناء REST APIs مع Python

💡 النقاط الرئيسية

  • Embedded Python يتيح استخدام Python مباشرة داخل ObjectScript
  • يمكنك الوصول لبيانات IRIS من Python باستخدام وحدة iris
  • مكتبات ML مثل Scikit-learn تعمل مع IRIS
  • يمكنك بناء REST APIs باستخدام Python داخل IRIS
  • استخدم Virtual Environments لعزل المكتبات