إنشاء حزم النشر وكتّاب الوجهة الشاملون
تُنشئ Generate deployables مشغّلًا محمولًا من الكتالوج و/أو تعريفات Output Target المحفوظة. ويمكن للمشغّل الاحتفاظ بمخرجات CSV/Excel وتوجيه عدة أهداف منطقية إلى وجهة مادية واحدة.
يستخدم DSE الآن Universal Destination Writer Framework. لكل إعداد Output Target حالي مسار كتابة قابل للتنفيذ. يختار DSE التقنية المناسبة: Native أو ODBC أو REST/OData أو SDK لمخزن الكائنات أو File أو Gateway.
عبارة Runtime writer تعني أن المشغّل المُنشأ يعرف كيفية تنفيذ المسار. وقد تبقى متطلبات خارجية ضرورية مثل برنامج تشغيل ODBC الخاص بالمورّد، أو بيانات اعتماد API، أو أذونات السحابة، أو بوابة معتمدة لـ VSAM/IMS/CICS.
سير العمل الموصى به
- اكتشف المصادر وراجع الكتالوج.
- أنشئ أو راجع mappings في Compose targets.
- افتح Generate deployables وأضف الأهداف المحفوظة.
- قم بتكوين الوجهة المادية قبل تفعيل الكتابة.
- راجع تقنية الكاتب وأسماء الكائنات ووضع الكتابة.
- فعّل Route selected targets to one destination فقط عندما تريد تفعيل الكتابة الخارجية.
- اختبر الاتصال واختر المنصة/RID ثم أنشئ الحزمة.
- شغّل الحزمة وافتح View results وقارن أعداد السجلات في الوجهة.
الأهداف المنطقية والوجهة المادية
Output Target هو عقد بيانات منطقي ولا يلزم أن تكون تقنيته هي نفس تقنية الوجهة المادية.
أمثلة:
MongoDB + Couchbase + InfluxDB -> PostgreSQL
Oracle + MongoDB + DynamoDB -> Redis
يحافظ DSE على provenance وmappings لكل صف مسار حتى لا يتم دمج سجلات غير مرتبطة عشوائيًا.
كوّن أولاً ثم فعّل
يبقى preset ووضع الكتابة وأسماء/أنواع الكائنات قابلة للتحرير حتى عندما يكون routing غير مفعّل. مربع الاختيار يتحكم في التنفيذ الخارجي وليس في محرر المسار.
تقنيات الكاتب
| التقنية | أمثلة | المتطلبات |
|---|---|---|
| Native | SQL/Azure SQL/Synapse وPostgreSQL وMySQL/MariaDB وOracle وSQLite وMongoDB وDynamoDB وCassandra وRedis وNeo4j | Provider مرفق + شبكة/اعتماد |
| ODBC | Db2 وInformix وTeradata وHANA وSnowflake وRedshift وBigQuery وSpanner وDatabricks وHive وTrino وSAS Viya وAccess/dBase وIBM i/zOS وغيرها | برنامج ODBC للمورّد + Driver=/DSN= |
| REST/OData | CosmosDB وCouchbase/CouchDB وElasticsearch/OpenSearch وArangoDB وInfluxDB وSalesforce وDynamics وSharePoint وServiceNow وWorkday وSAP OData | Endpoint + مصادقة |
| Object store | S3 وAzure Blob وADLS Gen2 وGCS | اعتماد المزوّد |
| File | File System وSMB وNFS وExcel | مسار قابل للكتابة |
| Gateway | VSAM وIMS وCICS وGeneric | بوابة HTTP معتمدة أو ODBC |
جدول توجيه كائنات الوجهة
حقل Destination object قابل للتحرير مباشرة. يجب أن يكون الاسم غير فارغ وفريدًا وصالحًا للمنصة. يتم تقييد Object type حسب الكاتب مثل Table أو Collection أو Hash أو Index أو Label أو Measurement أو Bucket.
Append وReplace
- Append يحافظ على البيانات الحالية ويضيف السجلات الجديدة.
- Replace يمسح كائن/بادئة المسار مرة واحدة ثم يكتب المجموعة الحالية.
لأسباب تتعلق بالسلامة، يوفر الكاتب المباشر لـ Salesforce وDynamics 365 CRM وSharePoint وServiceNow وWorkday وSAP OData وضع Append فقط. يتطلب الاستبدال الكامل المدمر بوابة مخصصة ومعتمدة بسياسة أعمال صريحة.
الاتصال
في بيئة الإنتاج يفضّل حقن الاتصال وقت التشغيل:
DSX_DESTINATION_CONNECTION_STRING
يتطلب ODBC قيمة صريحة Driver= أو DSN= وتثبيت برنامج التشغيل على جهاز تنفيذ المشغّل.
تستخدم REST/OData عادة Url=/Endpoint= وToken/AccessToken أو Username/Password أو ApiKey.
يمكن لـ VSAM/IMS/CICS/Generic استخدام Endpoint=https://... أو مسار ODBC معتمد.
النموذج القياسي
يحوّل المشغّل البيانات أولًا إلى سجل DSE محايد يحوي معرفًا ثابتًا وprovenance والحقول المربوطة، ثم يحولها adapter الوجهة إلى الصيغة المادية المناسبة.
AI Advisor
في الوجهات، حدد توصية واحدة للذكاء الاصطناعي باستخدام زر الاختيار. يقوم استخدام الوجهة المحددة في Deployables بتهيئة هذه الوجهة لجلسة Generate Deployables التالية. يقوم إنشاء وجهات مسودة الآن بإنشاء أو تحديث الوجهة المحددة فقط لتجنب تراكم مسودات AI المكررة.
يمكن لـ AI Advisor اقتراح الوجهة وإرسال المسار إلى Generate Deployables، لكنه لا ينفذ كتابة خارجية مخفية. يراجع المستخدم التقنية والكائنات والوضع والاتصال والحزمة قبل التشغيل.
بما أن كل presets الحالية لديها writer path، يمكن الحفاظ على تقنية الوجهة التي اقترحها AI بشرط توفر متطلبات runtime.
استكشاف الأخطاء
- لا يمكن تغيير preset: استخدم build الذي يحتوي على إصلاح dropdown؛ تعطيل routing لا يجب أن يقفل المحرر.
- ODBC يطلب Driver/DSN: ثبّت برنامج تشغيل المورّد على جهاز التنفيذ.
- REST يعيد 401/403: تحقق من endpoint والرمز والصلاحيات.
- SaaS لا يعرض Replace: هذا مقصود للسلامة.
- VSAM/IMS/CICS يطلب gateway: قم بتكوين بوابة الموقع أو ODBC.
- connection string مطلوب: عيّن
DSX_DESTINATION_CONNECTION_STRING.
توصيات الإنتاج
ابدأ بعدد سجلات صغير، واستخدم Append أثناء التحقق، واحفظ الأسرار خارج الحزمة، وطبّق أقل قدر من الصلاحيات، واستخدم كائنات/بادئات مخصصة، واحتفظ بمخرجات التدقيق قبل cutover.
الموثوقية المؤسسية وتتبع النسب وأمان إعادة التشغيل
يمكن للحزم القابلة للنشر الآن تضمين طبقة موثوقية بالإضافة إلى CSV/Excel والتوجيه الفعلي للوجهة.
يحصل كل تشغيل على Run ID ويمكنه إنشاء ما يلي تحت output/audit/<run-id>/:
lineage.jsonl: أحداث منظمة تتضمن المصدر والحقول ومسار الوجهة والكائنات المربوطة وعدد الصفوف وتقنية الكاتب ووضع الكتابة والحالة وبصمة الربط؛run-summary.json: نسخة ثابتة خاصة بكل تشغيل من ملخص التنفيذ داخل دليل التدقيق، حتى لا تستبدل عمليات التشغيل اللاحقة السجل التاريخي؛run-manifest.json: ملخص حوكمة يتضمن العدادات وإعادة المحاولة والاستئناف وهاشات SHA-256؛integrity.sha256: هاشات لملخص التشغيل وlineage والmanifest والملفات الناتجة.
لا تتضمن عناصر lineage سلاسل الاتصال أو بيانات الاعتماد.
Lease وheartbeat
خيار تمكين قفل التشغيل والنبض ينشئ lease خاصاً بالمخطط وheartbeat في مجلد الحالة. لا يمكن لمشغلين يستخدمان نفس المخطط وDSX_STATE_DIR العمل في الوقت نفسه. لاستخدام active/passive orchestration اجعل مجلد الحالة تخزيناً دائماً مشتركاً.
يمكن استخدام DSX_RUN_ID/--run-id وDSX_STATE_DIR/--state-dir و--lease-timeout-seconds و--heartbeat-seconds.
إعادة المحاولة ونقاط التحقق
أخطاء القراءة المؤقتة تستخدم exponential backoff محدوداً. لا تتم إعادة كتابة الوجهة إلا عندما يعلن الكاتب عن معاملات أو Upsert تجعل إعادة التشغيل آمنة بشكل معقول.
تحفظ نقاط التحقق عمليات كتابة الوجهة المكتملة. بعد الفشل يمكن لتشغيل جديد تجنب تكرار هذه الكتابات مع إعادة إنشاء CSV/Excel. يتم تعطيل الاستئناف في وضع Replace.
الفرق عن CDC
نقاط التحقق تحسن الاسترداد لكنها ليست Change Data Capture (CDC) مبنياً على سجلات المعاملات. وضع القراءة الحالي يبقى Snapshot. يحتاج CDC الإنتاجي إلى adapters خاصة بكل مصدر ومؤشرات دائمة مثل SQL Server CDC LSN وPostgreSQL WAL وMongoDB resume token وCosmos Change Feed continuation وDynamoDB shard positions.
راجع Docs/Enterprise-Reliability-CDC-Governance-HA-Plan.md.
<!-- DSE_DEPLOYABLE_CERTIFICATION_HELP_V1 -->
20. التشغيل المعتمد لحزم Windows وLinux القابلة للنشر التي ينشئها DSE
استخدم هذا القسم بعد اكتمال Generate deployables. يوضح مسار الاعتماد/التشغيل للحزمتين الناتجتين win-x64 وlinux-x64 الأصلية. هذه مشغلات تكامل ينشئها DSE وليست حزم التثبيت التجارية Windows/Container الخاصة بالمنتج.
20.1 حزمة Windows (windows/win-x64)
انسخ مجلد Windows الناتج إلى جهاز الاعتماد (أو فك الأرشيف المنقول)، ثم اعمل من المجلد windows\win-x64.
تحقق من وجود الملفات التالية قبل أول تشغيل:
DataSourceExplorer.Runner.exemanager.cmdrun.cmdschema-catalog.jsonsource-connections.jsondestination-route.json— عند تفعيل التوجيه إلى الوجهة
شغّل Runtime Manager المحلي:
cd /d C:\Path\To\deployables\windows\win-x64
manager.cmd
يقوم manager.cmd بتشغيل DataSourceExplorer.Runner.exe --manager. يستمع المدير على 127.0.0.1 فقط ويفتح المتصفح الافتراضي عادةً بصورة تلقائية. إذا لم يفتح المتصفح، شغّل الملف التنفيذي مباشرة واستخدم Local management URL الظاهر في وحدة التحكم.
DataSourceExplorer.Runner.exe --manager
- تأكد من أن Runtime status يعرض READY وأنه لا توجد عملية تنفيذ نشطة.
- في Connections تأكد من أن كل مصدر ووجهة مطلوبة تظهر بالحالة Configured. اترك الحقول المحمية فارغة للاحتفاظ بالقيمة المحفوظة/المضمنة.
- في أول تشغيل اعتماد استخدم Manual only وحدد مجلد الإخراج
output. - اختر Run now وانتظر حتى تعود الحالة إلى READY.
- تأكد من أن Last result وRun history يعرضان Success ثم تحقق بشكل مستقل من ملفات الإخراج/بيانات الوجهة المتوقعة.
لتشغيل واحد بدون واجهة:
run.cmd
يحاول المولّد أولاً إنشاء حزمة self-contained. إذا اضطر إلى استخدام نشر يعتمد على framework، فثبّت .NET 8 وASP.NET Core 8 Runtime المناسبين على الجهاز الهدف.
20.2 حزمة Linux (linux/linux-x64) — مسار Ubuntu Hyper-V الذي تم التحقق منه
يتبع الإجراء التالي دليل Ubuntu Server 26.04.1 LTS / Microsoft Hyper-V الذي تم التحقق منه والمرفق للاعتماد. يتم تشغيل حزمة Linux الأصلية ولا يلزم Docker لهذا المسار.
الوصول الآمن الموصى به من متصفح Windows
بدلاً من إتاحة المدير على شبكة الجهاز الافتراضي، يمكن إنشاء تحويل منفذ SSH محلي من Windows PowerShell بعد قراءة منفذ المدير من سجل Linux:
ssh -L 18093:127.0.0.1:<manager-port> <linux-user>@<VM-IP>
بعد ذلك افتح http://127.0.0.1:18093/ في Windows، وأبق جلسة SSH مفتوحة أثناء استخدام المدير. يظل تمرير socat الموضح أدناه مناسبًا لشبكة اعتماد معزولة/موثوقة.
الهدف
ينشئ هذا الإجراء جهاز Ubuntu Server افتراضيًا خفيفًا ويشغّل حزمة Linux الأصلية التي ينشئها DSE. وهو يحاكي سير العمل في Windows: نسخ الحزمة، تشغيل DSE Deployable Runtime Manager، فتح المدير من جهاز Windows، تشغيل الحزمة، ثم التحقق من النتيجة.
الحزمة الموضحة هنا هي حزمة أصلية من نوع linux-x64. لا يلزم Docker لهذا المسار.
المتطلبات
- جهاز Windows مع تفعيل Hyper-V
- ملف ISO لـ Ubuntu Server LTS
- مجلد
linuxالذي أنشأه DSE ويحتوي علىlinux/linux-x64 - 4 vCPU وذاكرة 4 GB وقرص افتراضي 40 GB على الأقل
- اتصال شبكي من الجهاز الافتراضي إلى مصادر ووجهات DSE المطلوبة
Windows → Hyper-V → Ubuntu → DSE Runtime Manager → Browser
1. إنشاء جهاز Hyper-V الافتراضي
أنشئ جهازًا افتراضيًا من الجيل الثاني بهذه الإعدادات الأساسية:
| اسم الجهاز | DSE-Linux-Test |
| الجيل | Generation 2 |
| الذاكرة | يوصى بذاكرة ثابتة 4096 MB |
| المعالجات | 4 معالجات افتراضية |
| القرص | VHDX بحجم 40 GB قابل للتوسع ديناميكيًا |
| الشبكة | Hyper-V Default Switch |
| Secure Boot | مفعّل - Microsoft UEFI Certificate Authority |
| النظام | Ubuntu Server LTS (تم التحقق باستخدام 26.04.1) |
أثناء تثبيت Ubuntu اختر Install OpenSSH server. بعد اكتمال التثبيت أخرج ملف ISO وابدأ التشغيل من القرص الافتراضي.
2. تجهيز Ubuntu
سجّل الدخول إلى Ubuntu وحدّث النظام، ثم تحقق من المعالج والذاكرة والقرص وعنوان IP.
sudo apt update
sudo apt upgrade -y
hostname -I
nproc
free -h
df -h
إذا كان VHDX بحجم 40 GB ولكن حجم الجذر نحو 18-19 GB فقط، وسّع وحدة LVM الجذر لاستخدام المساحة الحرة.
sudo vgs
sudo lvextend -l +100%FREE -r /dev/ubuntu-vg/ubuntu-lv
df -h
3. الاتصال من Windows باستخدام SSH
استخدم عنوان IP الحالي الذي يعرضه hostname -I. قد يتغير عنوان Hyper-V Default Switch بعد إعادة التشغيل.
ssh <linux-user>@<VM-IP>
4. نسخ مجلد Linux الذي تم إنشاؤه
شغّل ssh/scp من Windows PowerShell وليس من طرفية Ubuntu. ينشئ DSE مجلد linux وليس ملف linux.zip. استبدل المسار واسم المستخدم وعنوان IP بالقيم الفعلية.
ssh <linux-user>@<VM-IP> "rm -rf /home/<linux-user>/dse-deploy/linux && mkdir -p /home/<linux-user>/dse-deploy"
scp -r "C:\Path\To\GeneratedDeployables\...\linux" <linux-user>@<VM-IP>:/home/<linux-user>/dse-deploy/
إذا ظهر الخطأ “Could not resolve hostname c:” فقد تم تشغيل scp داخل Ubuntu. ارجع إلى Windows PowerShell وشغّله هناك.
5. تجهيز الحزمة
ثبّت socat إذا كنت ستستخدم relay، وانتقل إلى مجلد linux-x64 الذي تم نسخه، ثم امنح الملفات صلاحية التنفيذ. تنشئ النسخة الحالية من DSE سكربتات shell بترميز UTF-8 من دون BOM، لذلك لا يلزم فك ضغط أو إزالة BOM.
sudo apt update && sudo apt install -y socat
cd ~/dse-deploy/linux/linux-x64
chmod +x DataSourceExplorer.Runner manager.sh run.sh
ls -l DataSourceExplorer.Runner manager.sh run.sh
6. التحقق من اتصال المصدر/الوجهة
قبل تشغيل DSE تأكد من أن Ubuntu VM يستطيع الوصول إلى المضيف والمنفذ المطلوبين. يستخدم المثال MongoDB على المنفذ 27017.
timeout 5 bash -c '</dev/tcp/<source-host>/<source-port>' \
&& echo 'Port reachable' \
|| echo 'Port NOT reachable'
# MongoDB example
timeout 5 bash -c '</dev/tcp/192.168.50.124/27017' \
&& echo 'MongoDB port reachable' \
|| echo 'MongoDB port NOT reachable'
7. تشغيل DSE Deployable Runtime Manager
شغّل المدير واقرأ سجل وحدة التحكم. يرتبط المدير بالعنوان 127.0.0.1 ويختار منفذًا محليًا.
cd ~/dse-deploy/linux/linux-x64
./manager.sh
sleep 2
cat .dse-manager/manager-console.log
curl http://127.0.0.1:<manager-port>/ | head
يحتوي السجل الصحيح على سطر مشابه: Local management URL: http://127.0.0.1:51827. قد يتغير المنفذ بعد إعادة التشغيل.
8. إتاحة المدير لمتصفح Windows
استخدم socat في Ubuntu لتمرير منفذ ثابت على الجهاز الافتراضي (18093) إلى منفذ المدير الحالي على loopback. تكتشف الأوامر عنوان IP والمنفذ تلقائيًا.
cd ~/dse-deploy/linux/linux-x64
VM_IP=$(hostname -I | awk '{print $1}')
MANAGER_PORT=$(grep -oE '127\.0\.0\.1:[0-9]+' .dse-manager/manager-console.log | tail -1 | cut -d: -f2)
nohup socat TCP-LISTEN:18093,bind="$VM_IP",reuseaddr,fork TCP:127.0.0.1:"$MANAGER_PORT" > ~/dse-relay.log 2>&1 &
echo "Open: http://$VM_IP:18093/"
ss -ltnp | grep 18093
استخدم هذا التمرير داخل شبكة اختبار موثوقة فقط. أثناء تشغيل socat يصبح المدير متاحًا عبر واجهة شبكة الجهاز الافتراضي.
9. تشغيل الحزمة من واجهة المستخدم
- افتح في Edge أو Chrome عنوان URL الذي تعرضه أوامر التمرير.
- تأكد من أن Runtime status يعرض READY ولا توجد عملية نشطة.
- في Connections تأكد من أن المصدر والوجهة يعرضان Configured. اترك حقول الاتصال المحمية فارغة للاحتفاظ بالقيم المضمنة.
- للاختبار الأول اضبط Scheduler configuration على Manual only، وOutput directory على output، ثم احفظ الإعدادات.
- اختر Run now وانتظر حتى تعود الحالة إلى READY.
- تأكد من أن Last result وRun history يعرضان Success، ثم تحقق من ملفات الإخراج وبيانات الوجهة.
10. الإيقاف وإعادة التشغيل والتنظيف
قد يتغير عنوان IP ومنفذ المدير بعد إعادة تشغيل الجهاز الافتراضي. شغّل manager.sh مرة أخرى، واقرأ المنفذ الجديد، ثم أعد تشغيل socat. لإيقاف التمرير:
pkill -f 'socat TCP-LISTEN:18093' || true
قائمة التحقق
- يبدأ Ubuntu من VHDX ويعمل تسجيل الدخول عبر SSH
- توجد مساحة حرة كافية في نظام الملفات الجذر
- منفذ المصدر/الوجهة متاح من Ubuntu
- ملفات DataSourceExplorer.Runner وmanager.sh وrun.sh قابلة للتنفيذ
- يعرض manager-console.log عنوان إدارة محليًا
- يفتح متصفح Windows العنوان http://<VM-IP>:18093/
- تعود Runtime status إلى READY بعد Run now
- يعرض Run history حالة Success وتوجد النتائج المتوقعة
استكشاف الأخطاء
| Issue / Symptom | Action |
|---|---|
scp يعرض Could not resolve hostname c: |
شغّل scp من Windows PowerShell وليس من Ubuntu. |
Permission denied أو لا يبدأ السكربت |
شغّل chmod +x DataSourceExplorer.Runner manager.sh run.sh. |
curl -I يعرض 405 Method Not Allowed |
هذا متوقع إذا كان المدير يقبل GET ولا يقبل HEAD. استخدم curl http://127.0.0.1:<port>/. |
المتصفح لا يفتح عنوان 127.0.0.1 |
استخدم socat وافتح http://<VM-IP>:18093/ من Windows. |
تتوقف الصفحة بعد إعادة التشغيل |
شغّل manager.sh والتمرير مرة أخرى لأن IP والمنفذ قد يتغيران. |
فشل اختبار المصدر |
تحقق من التوجيه والجدار الناري واختبر المضيف/المنفذ من Ubuntu. |
لدمج الدليل في مساعدة المنتج استخدم صفحة HTML العربية المرفقة. اترك الأوامر كما هي وترجم فقط الشرح وإرشادات الواجهة.