په InterSystems IRIS کې Python Gateway

دا مقاله د Python Gateway په اړه ده، د InterSystems IRIS ډیټا پلیټ فارم لپاره د خلاصې سرچینې ټولنې پروژه. دا پروژه تاسو ته اجازه درکوي چې په Python کې رامینځته شوي د ماشین زده کړې الګوریتمونه تنظیم کړئ (د ډیری ډیټا ساینس پوهانو لپاره اصلي چاپیریال) ، د انټر سیسټم IRIS پلیټ فارم کې د ګړندي تطبیق ، روبوټیک تحلیلي AI / ML حلونو رامینځته کولو لپاره ډیری چمتو شوي کتابتونونه وکاروئ. پدې مقاله کې ، زه به تاسو ته وښیم چې څنګه InterSystems IRIS کولی شي د Python پروسې تنظیم کړي ، د دوه اړخیز ډیټا لیږد مؤثره ترسره کړي ، او هوښیار سوداګرۍ پروسې رامینځته کړي.

پلان

  1. پېژندنه.
  2. وسیلې.
  3. نصب کول.
  4. API.
  5. متقابل عمل
  6. Jupyter نوټ بوک.
  7. پایلې
  8. لینکونه.
  9. M.L. Toolkit

پېژندنه

Python د لوړې کچې، عمومي هدف پروګرام کولو ژبه ده چې د پراختیا کونکي تولید او د کوډ لوستلو وړتیا ښه کولو باندې تمرکز کوي. د مقالو په دې لړۍ کې، زه به د InterSystems IRIS پلیټ فارم کې د Python ژبې کارولو امکاناتو په اړه وغږیږم، پداسې حال کې چې د دې مقالې اصلي تمرکز د ماشین زده کړې ماډلونو جوړولو او پلي کولو لپاره د ژبې په توګه د پایتون کارول دي.

د ماشین زده کړه (ML) د مصنوعي استخباراتو میتودونو یوه ټولګي ده، چې د هغې ځانګړتیا ځانګړنه د ستونزې مستقیم حل نه دی، مګر د ډیری ورته ستونزو د حل کولو په بهیر کې زده کړه.

د ماشین زده کړې الګوریتمونه او ماډلونه ورځ تر بلې عام کیږي. د دې لپاره ډیری دلیلونه شتون لري، مګر دا ټول د لاسرسي، سادگي، او د عملي پایلو ترلاسه کولو پورې راځي. ایا کلسترینګ یا حتی د عصبي شبکې ماډلینګ یوه نوې ټیکنالوژي ده؟

البته نه، مګر نن ورځ د یو ماډل چلولو لپاره د سلګونو زرو لیکو کوډ لیکلو ته اړتیا نشته، او د ماډلونو جوړولو او پلي کولو لګښتونه کوچني او کوچني کیږي.

وسیلې وده کوي - پداسې حال کې چې موږ په بشپړ ډول د GUI متمرکز AI/ML وسیلې نلرو ، هغه پرمختګ چې موږ د معلوماتو سیسټمونو ډیری نورو ټولګیو لکه BI (د کوډ لیکلو څخه د چوکاټونو کارولو او GUI oriented ترتیب کولو حلونو) سره لیدلی دی ، هم لیدل کیږي. په AI/ML جوړولو وسیلو کې. موږ دمخه د کوډ لیکلو مرحله تیره کړې او نن ورځ موږ د ماډلونو جوړولو او روزنې لپاره چوکاټونه کاروو.

نور پرمختګونه، لکه د مخکې روزل شوي ماډل تبلیغ کولو وړتیا چیرې چې پای کارونکي باید په ساده ډول د دوی ځانګړي ډیټا کې ماډل روزنه پای ته ورسوي، د ماشین زده کړې پلي کول هم اسانه کوي. دا پرمختګونه د ماشین زده کړې زده کول خورا اسانه کوي ، دواړه د مسلکیانو او په ټوله کې شرکتونو لپاره.

له بلې خوا، موږ ډیر او ډیر معلومات راټولوو. د یو متحد ډیټا پلیټ فارم سره لکه د InterSystems IRIS، دا ټول معلومات سمدلاسه چمتو کیدی شي او د ماشین زده کړې ماډلونو لپاره د ان پټ په توګه کارول کیدی شي.

بادل ته د لیږد سره، د AI/ML پروژو پیل کول د هر وخت څخه ډیر اسانه دي. موږ کولی شو یوازې هغه سرچینې مصرف کړو چې موږ ورته اړتیا لرو. سربیره پردې ، د بادل پلیټ فارمونو لخوا وړاندیز شوي موازي کولو څخه مننه ، موږ کولی شو ضایع شوي وخت خوندي کړو.

مګر د پایلو په اړه څه؟ دا هغه ځای دی چې شیان ډیر پیچلي کیږي. د ماډلونو جوړولو لپاره ډیری وسیلې شتون لري ، کوم چې زه به یې په راتلونکي بحث وکړم. د ښه ماډل جوړول اسانه ندي، مګر بیا څه؟ د سوداګرۍ لخوا د ماډل کارولو څخه ګټه اخیستل هم یو غیر معمولي کار دی. د ستونزې ریښه د تحلیلي او لیږد کاري بارونو او ډیټا ماډلونو جلا کول دي. کله چې موږ یو ماډل وروزو، موږ معمولا دا په تاریخي معلوماتو کې کوو. مګر د جوړ شوي ماډل ځای د لیږد ډیټا پروسس کولو کې دی. که موږ دا په ورځ کې یو ځل چلوو نو د درغلۍ غوره لیږد کشف ماډل څه ښه دی؟ جعلکاران لا دمخه د پیسو سره وتلي دي. موږ اړتیا لرو چې ماډل د تاریخي معلوماتو په اړه وروزو، مګر موږ اړتیا لرو چې دا په ریښتیني وخت کې په نوي راتلونکو معلوماتو کې پلي کړو ترڅو زموږ د سوداګرۍ پروسې د ماډل لخوا وړاندیز شوي وړاندوینو سره سم عمل وکړي.

ML Toolkit یو اوزار کټ دی چې یوازې دا کار کوي: د موډلونو سره یوځای کول او د لیږد چاپیریال رامینځته کول ترڅو هغه موډلونه چې تاسو یې جوړ کړئ په اسانۍ سره ستاسو د سوداګرۍ پروسو کې کارول کیدی شي. Python Gateway د ML Toolkit برخه ده او د Python ژبې سره ادغام چمتو کوي (د R Gateway په څیر، د ML Toolkit برخه کیدل د R ژبې سره ادغام چمتو کوي).

توکي

مخکې لدې چې موږ دوام ورکړو ، زه غواړم یو څو د Python اوزار او کتابتونونه تشریح کړم چې موږ به یې وروسته کاروو.

د تکنالوژۍ

  • Python یوه تشریح شوې، عمومي هدف، د لوړې کچې پروګرام کولو ژبه ده. د ژبې اصلي ګټه د ریاضي، ML او AI کتابتونونو لوی کتابتون دی. د ObjectScript په څیر، دا د اعتراض پر بنسټ ژبه ده، مګر هرڅه په متحرک ډول تعریف شوي، نه په جامد ډول. همدارنګه هرڅه یو شی دی. وروسته مقالې د ژبې سره د تیریدلو آشنایت احساسوي. که تاسو غواړئ زده کړه پیل کړئ، زه وړاندیز کوم چې پیل یې کړئ اسناد.
  • زموږ د راتلونکو تمرینونو لپاره، تنظیم کړئ Python 3.6.7 64bit.
  • IDE: زه کاروم پیی چرممګر په عمومي توګه ډیری. که تاسو Atelier کاروئ، د Python پراختیا کونکو لپاره د Eclipse پلگ ان شتون لري. که تاسو د VS کوډ کاروئ، نو د Python لپاره توسیع شتون لري.
  • نوټ بوک: د IDE پرځای، تاسو کولی شئ خپل سکریپټونه په آنلاین نوټ بوکونو کې ولیکئ او شریک کړئ. د دوی تر ټولو مشهور دی جوپایټر.

کتابتونونه

دلته د ماشین زده کړې کتابتونونو (جزوي) لیست دی:

  • ناپاک - د دقیق محاسبې لپاره یو بنسټیز کڅوړه.
  • پانډا - د لوړ فعالیت ډیټا جوړښتونه او د معلوماتو تحلیل وسیلې.
  • matplotlib - د چارټونو جوړول.
  • سیند - د matplotlib پر بنسټ د معلوماتو لید.
  • Sklearn - د ماشین زده کړې میتودونه.
  • XGBoost - د ګریډینټ بوسټینګ میتودولوژي کې د ماشین زده کړې الګوریتمونه.
  • جینسیم – NLP
  • کیراس - عصبي شبکې.
  • د ټینسر جریان د ماشین زده کړې ماډلونو رامینځته کولو لپاره یو پلیټ فارم دی.
  • پینټورچ د ماشین زده کړې ماډلونو رامینځته کولو لپاره یو پلیټ فارم دی چې په پایتون تمرکز کوي.
  • نیوکا - د مختلف ماډلونو څخه PMML.

د AI/ML ټیکنالوژي سوداګرۍ ډیر اغیزمن او د تطبیق وړ کوي. سربیره پردې، نن ورځ دا ټیکنالوژي د پراختیا او پلي کولو لپاره اسانه کیږي. د AI/ML ټیکنالوژیو په اړه زده کړه پیل کړئ او دا څنګه کولی شي ستاسو د سازمان وده کې مرسته وکړي.

د جوړولو

د Python Gateway نصب او کارولو لپاره ډیری لارې شتون لري:

  • OS
    • Windows
    • لینوکس
    • مېک
  • ډاکر
    • د DockerHub څخه عکس وکاروئ
    • خپل نظر جوړ کړئ

د نصب کولو میتود په پام کې نیولو پرته، تاسو به د سرچینې کوډ ته اړتیا ولرئ. د کوډ ډاونلوډ کولو یوازینی ځای دی پاڼه خپروي. پدې کې ازمول شوي مستحکم ریلیزونه شامل دي ، یوازې وروستی ترلاسه کړئ. اوس مهال دا 0.8 دی، مګر د وخت په تیریدو سره به نوي وي. ذخیره کلون مه کوئ / ډاونلوډ کړئ ، وروستی ریلیز ډاونلوډ کړئ.

OS

که تاسو په عملیاتي سیسټم کې د Python Gateway نصب کوئ، نو لومړی (پرته له دې چې عملیاتي سیسټم وي) تاسو باید Python نصب کړئ. د دى لپاره:

  1. Python 3.6.7 64 bit نصب کړئ. دا سپارښتنه کیږي چې په ډیفالټ ډایرکټر کې Python نصب کړئ.
  2. ماډل نصب کړئ dill: pip install dill.
  3. د آبجیکٹ سکریپټ کوډ ډاونلوډ کړئ (د مثال په توګه do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) د محصولاتو سره هرې سیمې ته. په هغه صورت کې چې تاسو د محصولاتو مالتړ لپاره موجوده ساحه غواړئ، چل کړئ: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. ځای کال آوټ DLL/SO/DYLIB فولډر ته bin ستاسو د InterSystems IRIS مثال. د کتابتون فایل باید په هغه لاره کې شتون ولري چې بیرته راستانه شوي write ##class(isc.py.Callout).GetLib().

Windows

  1. ډاډ ترلاسه کړئ چې د چاپیریال متغیر دی PYTHONHOME Python 3.6.7 ته اشاره کوي.
  2. ډاډ ترلاسه کړئ چې د سیسټم چاپیریال متغیر دی PATH یو متغیر لري PYTHONHOME (یا هغه لارښود چې ورته اشاره کوي).

لینکس (دبیان / اوبنټو)

  1. وګورئ چې ایا د چاپیریال متغیر دی PATH لري /usr/lib и /usr/lib/x86_64-linux-gnu. فایل وکاروئ /etc/environment د چاپیریال متغیرونو تنظیم کول.
  2. د تېروتنو په صورت کې undefined symbol: _Py_TrueStruct ترتیب تنظیم کړئ PythonLib. هم په کې لوستل د ستونزو حل کولو برخه شتون لري.

مېک

  1. اوس مهال یوازې د python 3.6.7 څخه ملاتړ کیږي پیتون ..org. متغیر چیک کړئ PATH.

که تاسو د چاپیریال تغیرات بدل کړي وي، خپل د InterSystems محصول بیا پیل کړئ.

ډاکر

د کانتینرونو کارول یو شمیر ګټې لري:

  • د پورټ وړتیا
  • اغیزمنتوب
  • موصلیت
  • رڼا
  • بې ثباتي

دا وګورئ د مقالو لړۍ د InterSystems محصولاتو سره د Docker کارولو په اړه د نورو معلوماتو لپاره.

د Python Gateway ټول جوړونه اوس مهال د کانټینر پر بنسټ دي. 2019.4.

بشپړ شوی انځور

چلول: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestد InterSystems IRIS Community Edition سره د Python Gateway ډاونلوډ او چلولو لپاره. بس نور څه نه.

خپل نظر جوړ کړئ

د ډاکر عکس رامینځته کولو لپاره ، د ذخیره کولو ریښې کې وګرځئ: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
په ډیفالټ کې، عکس د عکس پر بنسټ جوړ شوی store/intersystems/iris-community:2019.4.0.383.0په هرصورت، تاسو کولی شئ دا د متغیر په ترتیبولو سره بدل کړئ IMAGE.
د InterSystems IRIS څخه د جوړولو لپاره چلول: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest'.

له هغې وروسته، تاسو کولی شئ د ډاکر عکس چل کړئ:

docker run -d 
  -p 52773:52773 
  -v /<HOST-DIR-WITH-iris.key>/:/mount 
  --name irispy 
  intersystemscommunity/irispy:latest 
  --key /mount/iris.key

که تاسو د InterSystems IRIS ټولنې ایډیشن پراساس یو عکس کاروئ ، نو تاسو اړتیا نلرئ کیلي مشخص کړئ.

تبصرې

  • د ازموینې بهیر isc.py.test.Process یو شمیر عکسونه لنډمهاله لارښود ته خوندي کوي. تاسو ممکن دا لاره په نصب شوي لارښود کې بدل کړئ. د دې کولو لپاره، ترتیب ترتیب کړئ WorkingDir نصب شوی لارښود مشخص کول.
  • ترمینل ته د لاسرسي لپاره، چلول: docker exec -it irispy sh.
  • د ننوتلو له لارې د سیسټم مدیریت پورټل ته لاسرسی SuperUser/SYS.
  • د کانټینر د بندولو لپاره، چلول: docker stop irispy && docker rm --force irispy.

د نصب کولو چک کول

یوځل چې تاسو د Python Gateway نصب کړ ، نو دا د چیک کولو ارزښت لري چې دا کار کوي. دا کوډ د InterSystems IRIS ترمینل کې چل کړئ:

set sc = ##class(isc.py.Callout).Setup() 
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var

پایله باید وي HELLO - د Python متغیر ارزښت x. که د بیرته ستنیدو حالت sc یوه تېروتنه ده یا var خالي، چک Readme — د ستونزو د حل برخه.

API

د Python Gateway نصب شوی او تاسو تایید کړی چې دا کار کوي. د دې کارولو پیل کولو وخت!
د Python اصلي انٹرفیس دی isc.py.Main. دا د میتودونو لاندې ډلې وړاندیز کوي (ټول بیرته راګرځي %Status):

  • د کوډ اجرا کول
  • د ډاټا انتقال
  • معاون

د کوډ اجرا کول

دا میتودونه تاسو ته اجازه درکوي خپل سري Python کوډ اجرا کړئ.

SimpleString

SimpleString اصلي میتود دی. دا 4 اختیاري دلیلونه اخلي:

  • code د اجرا کولو لپاره د کوډ کرښه ده. لاین فیډ کرکټر: $c(10).
  • returnVariable د بیرته راستنیدو لپاره د متغیر نوم دی.
  • serialization - څنګه سریالیز کول returnVariable. 0 - تار (ډیفالټ)، 1 - تکرار.
  • result - ByRef هغه متغیر ته حواله کوي په کوم کې چې ارزښت لیکل شوی returnVariable.

پورته مو کړي دي:

set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).

په دې مثال کې، موږ د Python متغیر ته ګومارو x معنی Hello او غواړي چې د Python متغیر ارزښت بیرته راولي x د ObjectScript متغیر ته var.

ExecuteCode

ExecuteCode یو خوندي او لږ محدوده بدیل دی SimpleString.
د InterSystems IRIS پلیټ فارم کې لینونه تر 3 حروف پورې محدود دي، او که تاسو غواړئ د کوډ اوږده ټوټه اجرا کړئ، تاسو اړتیا لرئ چې جریان وکاروئ.
دا دوه دلیلونه اخلي:

  • code - د پایتون کوډ یو تار یا جریان باید اجرا شي.
  • variable - (اختیاري) د اجرا کولو پایله وړاندې کوي code دا Python متغیر.

د کارولو وړاندیز وکړئ:

set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").

په دې مثال کې، موږ 2 د 3 سره ضرب کوو او پایله یې د Python متغیر کې ذخیره کوو y.

د ډاټا انتقال

Python ته او له هغه څخه ډاټا انتقال کړئ.

Python -> InterSystems IRIS

په InterSystems IRIS کې د Python متغیر ارزښت ترلاسه کولو لپاره 4 لارې شتون لري، د سریال کولو پورې اړه لري چې تاسو ورته اړتیا لرئ:

  • String د ساده معلوماتو ډولونو او ډیبګ کولو لپاره.
  • Repr د ساده شیانو ذخیره کولو او ډیبګ کولو لپاره.
  • JSON د InterSystems IRIS اړخ کې د اسانه معلوماتو لاسوهنې لپاره.
  • Pickle د توکو خوندي کولو لپاره.

دا میتودونه تاسو ته اجازه درکوي چې له Python څخه د تار یا جریان په توګه متغیرات ترلاسه کړئ.

  • GetVariable(variable, serialization, .stream, useString) - ترلاسه کړئ serialization متغیر variable в stream. که useString 1 دی او سیریلائزیشن په تار کې کیښودل کیږي، بیا یو تار بیرته راځي، نه جریان.
  • GetVariableJson(variable, .stream, useString) - د متغیر JSON سیریل کول ترلاسه کړئ.
  • GetVariablePickle(variable, .stream, useString, useDill) - د یو متغیر سیریل کولو اچار (یا ډیل) ترلاسه کړئ.

راځئ هڅه وکړو چې خپل متغیر ترلاسه کړو y.

set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6

InterSystems IRIS -> Python

په پایتون کې د InterSystems IRIS څخه ډاټا بار کول.

  • ExecuteQuery(query, variable, type, namespace) - ډیټاسیټ رامینځته کوي (پانډا dataframe او یا list) د sql پوښتنې څخه او د python متغیر ته یې تنظیم کړئ variable. پلاستیکي کڅوړه isc.py باید په سیمه کې شتون ولري namespace - غوښتنه به هلته اجرا شي.
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - نړیوال معلومات باروي global د ګډون څخه start پورې end په Python کې د ډول متغیر په توګه type: list, یا پانډا dataframe. د اختیاري دلیلونو توضیحات mask او labels د ټولګي اسنادو او ذخیره کې شتون لري د ډیټا لیږد اسناد.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - د ټولګي ډاټا بار کوي class له id څخه start پورې end په Python کې د ډول متغیر په توګه type: list, یا پانډا dataframe. properties - د ټولګي د ملکیتونو لیست (د کوما په واسطه جلا شوی) په ډیټاسیټ کې د بارولو لپاره. ماسکونه ملاتړ شوي * и ?. ډیفالټ - * (ټول ملکیتونه). ملکیت %%CLASSNAME له پامه غورځول شوی
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - د میز ډاټا بار کوي table له id څخه start پورې end په python.

ExecuteQuery - یونیورسل (هر ډول معتبر SQL پوښتنه به پایتون ته انتقال شي). په هرصورت، ExecuteGlobal او د هغه لپې ExecuteClass и ExecuteTable د یو شمیر محدودیتونو سره کار وکړئ. دوی خورا ګړندي دي (د ODBC ډرایور په پرتله 3-5 ځله ګړندي او په پرتله 20 ځله ګړندي ExecuteQuery). نور معلومات په کې د ډیټا لیږد اسناد.
دا ټول میتودونه د هرې سیمې څخه د معلوماتو لیږد ملاتړ کوي. پلاستیکي کڅوړه isc.py باید په نښه شوي ساحه کې شتون ولري.

ExecuteQuery

ExecuteQuery(request, variable, type, namespace) - پایتون ته د هرې معتبر SQL پوښتنې پایلې لیږدول. دا د ډیټا لیږد ترټولو ورو طریقه ده. که یې وکاروئ ExecuteGlobal او د هغې ریپرونه شتون نلري.

دلیلونه:

  • query - sql پوښتنه.
  • variable - د Python متغیر نوم په کوم کې چې ډاټا لیکل کیږي.
  • type - list یا پانډا dataframe.
  • namespace - هغه ساحه چې غوښتنه به یې اجرا شي.

ExecuteGlobal

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - Python ته نړیوال انتقال کول.

دلیلونه:

  • global پرته د نړیوال نوم دی ^
  • variable - د Python متغیر نوم په کوم کې چې ډاټا لیکل کیږي.
  • type - list یا پانډا dataframe.
  • start - د نړۍ لومړی ګډون. لازمه ده %Integer.
  • end د نړیوال وروستی سبسکرپټ دی. لازمه ده %Integer.
  • mask - د نړیوالو ارزښتونو ماسک. ماسک په نړیوال کې د ساحو له شمیر څخه لنډ کیدی شي (په دې حالت کې په پای کې ساحې پریښودل کیږي). د ماسک فارمیټ کولو څرنګوالی:
    • + ارزښت لکه څنګه چې دی تیر کړئ.
    • - ارزښت پریږدئ.
    • b - د بولین ډول (0 - Falseپاتې ټول - True).
    • d - نیټه (د $ horolog څخه، په وینډوز کې له 1970 څخه، په لینکس کې له 1900 څخه).
    • t - وخت ($ horolog، د نیمې شپې وروسته ثانیې).
    • m — د مهال ویش (د کال-میاشت-ورځ ساعت: دقیقه: د دوهم شکل سټرینګ).
  • labels - د کالم نومونو لیست. لومړی عنصر د سبسکریپټ نوم دی.
  • namespace - هغه ساحه چې غوښتنه به یې اجرا شي.

ExecuteClass

وتړل ExecuteGlobal. د ټولګي تعریف پراساس تلیفون چمتو کوي ExecuteGlobal او هغه ته غږ کوي.

ExecuteClass(class, variable, type, start, end, properties, namespace) - Python ته د ټولګي ډیټا لیږدول.

دلیلونه:

  • class - د ټولګي نوم
  • variable - د Python متغیر نوم په کوم کې چې ډاټا لیکل کیږي.
  • type - list یا پانډا dataframe.
  • start - د پیل ID
  • end - وروستۍ پیژندنه
  • properties - د ټولګي د ملکیتونو لیست (د کوما په واسطه جلا شوی) په ډیټاسیټ کې د بارولو لپاره. ماسکونه ملاتړ شوي * и ?. ډیفالټ - * (ټول ملکیتونه). ملکیت %%CLASSNAME له پامه غورځول شوی
  • namespace - هغه ساحه چې غوښتنه به یې اجرا شي.

ټول ملکیتونه لکه څنګه چې د ډول ملکیتونو پرته تیریږي %Date, %Time, %Boolean и %TimeStamp - دوی د Python اړوند ټولګیو ته بدل شوي.

ExecuteTable

وتړل ExecuteClass. د میز نوم د ټولګي نوم او زنګونو ته ژباړي ExecuteClass. لاسلیک:

ExecuteTable(table, variable, type, start, end, properties, namespace) - Python ته د جدول ډیټا لیږدول.

دلیلونه:

  • table - د میز نوم.
    نور ټول دلیلونه لکه څنګه چې تیریږي. ExecuteClass.

یادښتونه

  • ExecuteGlobal, ExecuteClass и ExecuteTable په مساوي ډول ګړندي کار وکړئ.
  • ExecuteGlobal په پرتله 20 ځله ګړندی ExecuteQuery په لوی ډیټاسیټونو کې (د لیږد وخت> 0.01 ثانیې).
  • ExecuteGlobal, ExecuteClass и ExecuteTable د دې جوړښت سره په نړۍ کې کار وکړئ: ^global(key) = $lb(prop1, prop2, ..., propN) چې key یو عدد دی.
  • لپاره ExecuteGlobal, ExecuteClass и ExecuteTable د ملاتړ شوي ارزښت رینج %Date د حد سره مطابقت لري mktime او په OS پورې اړه لريکړکۍ: 1970-01-01 ، لینوکس 1900-01-01، مېک). کارول %TimeStampد دې حد څخه بهر د معلوماتو لیږدولو لپاره یا د پانډا ډیټا فریم په توګه وکاروئ دا محدودیت یوازې د لیست لپاره دی.
  • لپاره ExecuteGlobal, ExecuteClass и ExecuteTable ټول دلیلونه پرته له دې چې د ډاټا سرچینې (نړیوال، ټولګي یا جدول) او متغیر اختیاري دي.

مثالونه

د ازموینې ټولګي isc.py.test.شخص یو میتود لري چې د ډیټا لیږد ټول اختیارونه ښیې:

set global = "isc.py.test.PersonD"
set class = "isc.py.test.Person"
set table = "isc_py_test.Person"
set query = "SELECT * FROM isc_py_test.Person"

// Общие аргументы
set variable = "df"
set type = "dataframe"
set start = 1
set end = $g(^isc.py.test.PersonD, start)

// Способ 0: ExecuteGlobal без аргументов
set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 0, type)

// Способ 1: ExecuteGlobal с аргументами    
// При передаче глобала названия полей задаются вручную
// globalKey - название сабсткрипта 
set labels = $lb("globalKey", "Name", "DOB", "TS", "RandomTime", "AgeYears", "AgeDecimal", "AgeDouble", "Bool")

// mask содержит на 1 элемент меньше чем labels потому что "globalKey" - название сабскипта
// Пропускаем %%CLASSNAME
set mask = "-+dmt+++b"

set sc = ##class(isc.py.Main).ExecuteGlobal(global, variable _ 1, type, start, end, mask, labels)

// Способ 2: ExecuteClass
set sc = ##class(isc.py.Main).ExecuteClass(class, variable _ 2, type, start, end)

// Способ 3: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteTable(table, variable _ 3, type, start, end)

// Способ 4: ExecuteTable
set sc = ##class(isc.py.Main).ExecuteQuery(query, variable _ 4, type)

د زنګ وهلو طریقه do ##class(isc.py.test.Person).Test() د دې لپاره چې وګورئ چې د ډیټا لیږد ټولې میتودونه څنګه کار کوي.

د مرستې طریقې

  • GetVariableInfo(variable, serialization, .defined, .type, .length) - د متغیر په اړه معلومات ترلاسه کړئ: ایا دا تعریف شوی، ټولګي او د سریال کولو اوږدوالی.
  • GetVariableDefined(variable, .defined) - آیا متغیر تعریف شوی.
  • GetVariableType(variable, .type) - د متغیر ټولګي ترلاسه کړئ.
  • GetStatus() - په پایتون اړخ کې وروستی استثنا ترلاسه کړئ او لرې کړئ.
  • GetModuleInfo(module, .imported, .alias) - د ماډل متغیر او وارداتو حالت ترلاسه کړئ.
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - د فعالیت په اړه معلومات ترلاسه کړئ.

متقابل عمل

تاسو زده کړل چې څنګه د ټرمینل څخه Python Gateway ته زنګ ووهئ، اوس راځئ چې په تولید کې یې کارول پیل کړو. پدې حالت کې د Python سره د متقابل عمل اساس دی isc.py.ens.Operation. دا موږ ته اجازه راکوي:

  • د Python کوډ اجرا کړئ
  • د Python شرایط خوندي کړئ / بحال کړئ
  • له Python څخه ډاټا پورته او ترلاسه کړئ

په اصل کې، د Pyhton عملیات یو ریپر اوور دی isc.py.Main. عملیات isc.py.ens.Operation د InterSystems IRIS محصولاتو څخه د Python پروسې سره تعامل ته اجازه ورکوي. پنځه غوښتنې ملاتړ کیږي:

  • isc.py.msg.ExecutionRequest د Python کوډ اجرا کولو لپاره. بیرته راګرځي isc.py.msg.ExecutionResponse د اعدام پایلې او د غوښتل شوي متغیر ارزښتونو سره.
  • isc.py.msg.StreamExecutionRequest د Python کوډ اجرا کولو لپاره. بیرته راګرځي isc.py.msg.StreamExecutionResponse د پلي کولو پایله او د غوښتل شوي متغیر ارزښتونه. انلاګ isc.py.msg.ExecutionRequest، مګر د تارونو پرځای جریان مني او بیرته راګرځوي.
  • isc.py.msg.QueryRequest د SQL پوښتنې د اجرا کولو پایله لیږدولو لپاره. بیرته راګرځي Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest د نړیوال / ټولګي / میز ډیټا تیرولو لپاره. بیرته راګرځي Ens.Response.
  • isc.py.msg.SaveRequest د Python شرایطو خوندي کولو لپاره. بیرته راګرځي Ens.StringResponse د شرایطو ID سره.
  • isc.py.msg.RestoreRequest د Python شرایطو بیرته راګرځولو لپاره.

    سربیره پردې، isc.py.ens.Operation دوه ترتیبات لري:

    • Initializer - د یو ټولګي غوره کول چې انٹرفیس پلي کوي isc.py.init.Abstract. دا د دندو، ماډلونو، ټولګیو او داسې نورو بارولو لپاره کارول کیدی شي. دا یو ځل اجرا کیږي کله چې پروسه پیل شي.
    • PythonLib - (یوازې لینکس) که تاسو د بوټ غلطۍ وګورئ، د هغې ارزښت یې وټاکئ libpython3.6m.so یا حتی د Python کتابتون ته په بشپړه لاره کې.

د سوداګرۍ پروسې رامینځته کول

دلته دوه ټولګي شتون لري چې د سوداګرۍ پروسې پراختیا اسانه کوي:

  • isc.py.ens.ProcessUtils تاسو ته اجازه درکوي چې د متغیر بدیل سره د فعالیتونو څخه تشریحات استخراج کړئ.
  • isc.py.util.BPEmulator د Python سره د سوداګرۍ پروسې ازموینه اسانه کوي. دا کولی شي په اوسني پروسې کې د سوداګرۍ پروسې (Python برخې) اجرا کړي.

متغیر بدیل

ټولې سوداګریزې پروسې په میراث کې دي isc.py.ens.ProcessUtils، کولای شي د میتود څخه کار واخلي GetAnnotation(name) د نوم په واسطه د فعالیت تشریح ارزښت ترلاسه کول. د فعالیت تشریح ممکن متغیرات ولري چې پایتون ته د لیږدولو دمخه به د InterSystems IRIS اړخ کې ارزول کیږي. دلته د متغیر بدیل لپاره ترکیب دی:

  • ${class:method:arg1:...:argN} - میتود زنګ
  • #{expr} - د ObjectScript په ژبه کې کوډ اجرا کړئ.

یوه بیلګه د ازموینې سوداګرۍ پروسې کې شتون لري isc.py.test.Processد مثال په توګه، په فعالیت کې Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). په دې مثال کې:

  • #{process.WorkDirectory} د څیز د کاري لارښود ملکیت بیرته راګرځوي process، کوم چې د ټولګي یوه بیلګه ده isc.py.test.Process هغه. د سوداګرۍ اوسنۍ پروسه.
  • ${%PopulateUtils:Integer:1:100} طریقه بولي Integer کلونه %PopulateUtils، تیریدل دلیلونه 1 и 100په حد کې د تصادفي عدد بیرته راګرځول 1...100.

د سوداګرۍ پروسې ازموینه

د ازموینې تولید او ازموینې سوداګرۍ پروسه د پایتون ګیټ وے برخې په توګه په ډیفالټ کې شتون لري. د دوی کارولو لپاره:

  1. د OS ترمینل چلولو کې: pip install pandas matplotlib seaborn.
  2. د InterSystems IRIS ترمینل کې، چلول: do ##class(isc.py.test.CannibalizationData).Import() د ازموینې ډاټا ډکولو لپاره.
  3. محصولات پیل کړئ isc.py.test.Production.
  4. د غوښتنې ډول لیږل Ens.Request в isc.py.test.Process.

راځئ وګورو چې دا ټول څنګه یوځای کار کوي. خلاص isc.py.test.Process د BPL مدیر کې:

په InterSystems IRIS کې Python Gateway

د کوډ اجرا کول

ترټولو مهم کال د Python کوډ اجرا کول دي:

په InterSystems IRIS کې Python Gateway

غوښتنه کارول isc.py.msg.ExecutionRequestدلته د هغې ځانګړتیاوې دي:

  • Code - د Python کوډ.
  • SeparateLines - ایا کوډ د اجرا کولو لپاره په لینونو ویشل. $c(10) (n) د تارونو جلا کولو لپاره کارول کیږي. مهرباني وکړئ په یاد ولرئ چې دا سپارښتنه نه کیږي چې ټول پیغام په یوځل کې پروسس کړئ، دا فعالیت یوازې د پروسس کولو لپاره دی def او ورته څو کرښې څرګندونه. ډیفالټ 0.
  • Variables د کوما لخوا جلا شوی د متغیرونو لیست دی چې په ځواب کې به اضافه شي.
  • Serialization - هغه متغیرونه څنګه سریالیز کړئ چې موږ یې غواړو بیرته راستانه کړو. اختیارونه: Str, Repr, JSON, Pickle и Dill, default Str.

زموږ په قضیه کې، موږ یوازې ملکیت ترتیب کوو Codeد دې لپاره چې نور ټول ملکیتونه خپل اصلي ارزښتونه کاروي. موږ یې د زنګ وهلو له لارې تنظیم کړو process.GetAnnotation("Import pandas")، کوم چې د چلولو په وخت کې د متغیر بدیل ترسره کیدو وروسته تشریح راګرځوي. په پای کې کوډ import pandas as pd Python ته لیږدول کیږي. GetAnnotation د ملټي لاین پیتون سکریپټونو ترلاسه کولو لپاره ګټور کیدی شي ، مګر د کوډ ترلاسه کولو پدې لاره کې هیڅ محدودیت شتون نلري. تاسو کولی شئ ملکیت تنظیم کړئ Code په هر ډول چې ستاسو لپاره مناسب وي.

د تغیراتو ترلاسه کول

د کارولو بله په زړه پورې ننګونه isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

په InterSystems IRIS کې Python Gateway

دا د Python اړخ کې د ارتباط میټرکس محاسبه کوي او متغیر استخراج کوي corrmat د غوښتنې ملکیتونو تنظیم کولو سره د JSON ب formatه کې InterSystems IRIS ته بیرته:

  • Variables: "corrmat"
  • Serialization: "JSON"

موږ کولی شو پایلې په بصری ټریس کې وګورو:

په InterSystems IRIS کې Python Gateway

او که موږ په BP کې دې ارزښت ته اړتیا ولرو، دا په لاندې ډول ترلاسه کیدی شي: callresponse.Variables.GetAt("corrmat").

د ډاټا انتقال

بیا ، راځئ چې د InterSystems IRIS څخه Python ته د ډیټا لیږدولو په اړه وغږیږو ، د ډیټا لیږد ټولې غوښتنې انٹرفیس پلي کوي isc.py.msg.DataRequest، کوم چې لاندې ملکیتونه وړاندې کوي:

  • Variable د Python متغیر دی چې ډاټا لیکل کیږي.
  • Type - متغیر ډول: dataframe (د پانډاس ډیټا فریم) یا list.
  • Namespace - هغه ساحه چې موږ یې معلومات ترلاسه کوو. پلاستیکي کڅوړه isc.py باید په دې سیمه کې شتون ولري. دا ممکن د محصول ملاتړ پرته ساحه وي.

د دې انٹرفیس پراساس، د غوښتنو 4 ټولګي پلي کیږي:

  • isc.py.msg.QueryRequest - ملکیت ټاکل Query د SQL پوښتنې لیږلو لپاره.
  • isc.py.msg.ClassRequest - ملکیت ټاکل Class د ټولګي ډیټا تیرولو لپاره.
  • isc.py.msg.TableRequest - ملکیت ټاکل Table د جدول ډیټا تیرولو لپاره.
  • isc.py.msg.GlobalRequest - ملکیت ټاکل Global په نړیواله کچه د معلوماتو لیږدولو لپاره.

د ازموینې په بهیر کې، فعالیت وګورئ RAWچیرته isc.py.msg.QueryRequest په عمل کې ښودل شوي.

په InterSystems IRIS کې Python Gateway

د Python شرایط خوندي کول / بحال کول

په نهایت کې ، موږ کولی شو د Python شرایط په InterSystems IRIS کې ذخیره کړو ، د دې کولو لپاره ، واستوئ isc.py.msg.SaveRequest د دلیلونو سره:

  • Mask - یوازې هغه تغیرات چې ماسک راضي کوي خوندي شوي. ملاتړ شوی * и ?. بېلګه: "Data*, Figure?". ډیفالټ *.
  • MaxLength - د ذخیره شوي متغیر اعظمي اوږدوالی. که د متغیر سیریل کول اوږد وي، نو دا به له پامه غورځول شي. د هر اوږدوالي متغیر ترلاسه کولو لپاره 0 ته تنظیم کړئ. ډیفالټ $$$MaxStringLength.
  • Name - د متن نوم (اختیاري).
  • Description - د شرایطو توضیحات (اختیاري).

راګرځي Ens.StringResponse с Id خوندي شوي شرایط د ازموینې په بهیر کې، فعالیت وګورئ Save Context.

اړونده غوښتنه isc.py.msg.RestoreRequest د InterSystems IRIS څخه په Python کې شرایط باروي:

  • ContextId د شرایطو پیژندونکی دی.
  • Clear - د بیا رغولو دمخه شرایط پاک کړئ.

د Jupyter نوټ بوک

د Jupyter نوټ بوک د خلاصې سرچینې ویب غوښتنلیک دی چې تاسو ته اجازه درکوي نوټ بوکونه جوړ او خپاره کړئ چې کوډونه، لیدونه او متن لري. د Python Gateway تاسو ته اجازه درکوي چې د BPL پروسې د Jupyter نوټ بوک په توګه وګورئ او ایډیټ کړئ. په یاد ولرئ چې منظم Python 3 اجرا کونکی اوس مهال کارول کیږي.

دا توسیع فرض کوي چې تشریحات د Python کوډ لري او د مخکیني سرلیکونو په توګه د فعالیت نومونه کاروي. اوس دا ممکنه ده چې په Jupyter نوټ بوک کې د PythonGateway سوداګرۍ پروسې رامینځته کړئ. دلته هغه څه دي چې ممکن دي:

  • د سوداګرۍ نوې پروسې رامینځته کړئ
  • د سوداګرۍ پروسې حذف کړئ
  • نوي فعالیتونه رامینځته کړئ
  • فعالیتونه بدل کړئ
  • فعالیتونه حذف کړئ

دلته ډیمو ویډیو. او ځینې سکرین شاټونه:

د پروسې سپړونکی

په InterSystems IRIS کې Python Gateway

د پروسې مدیر

په InterSystems IRIS کې Python Gateway

د جوړولو

  1. تاسو به د InterSystems IRIS 2019.2+ ته اړتیا ولرئ.
  2. PythonGateway v0.8+ نصب کړئ (یوازې اړتیا لري isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints и isc.py.ens.ProcessUtils).
  3. د ذخیرې څخه د ObjectScript کوډ تازه کړئ.
  4. چلول do ##class(isc.py.util.Jupyter).Install() او لارښوونې تعقیب کړئ.

لاسوند.

موندنو

MLToolkit د وسیلو یوه ټولګه ده چې هدف یې د ماډلونو او د لیږد چاپیریال سره یوځای کول دي ترڅو جوړ شوي ماډلونه په اسانۍ سره ستاسو د سوداګرۍ پروسو کې په اسانۍ سره وکارول شي. د Python Gateway د MLToolkit برخه ده او د Python ژبې سره ادغام چمتو کوي، تاسو ته اجازه درکوي چې په Python کې رامینځته شوي د ماشین زده کړې الګوریتمونه تنظیم کړئ (د ډیری ډیټا ساینس پوهانو لپاره اصلي چاپیریال)، ډیری چمتو شوي کتابتونونه وکاروئ ترڅو ژر تر ژره تطبیقونکي، روبوټیک تحلیلي AI / د InterSystems پلیټ فارم IRIS کې د ML حلونه.

مرجع

MLToolkit

د MLToolkit کاروونکي ګروپ یو شخصي GitHub ذخیره ده چې د InterSystems کارپوریټ GitHub سازمان د یوې برخې په توګه رامینځته شوی. دا هغه بهرني کاروونکو ته په ګوته شوي چې د Python Gateway په ګډون د MLToolkit اجزا نصبوي، زده کوي یا دمخه کاروي. دا ډله د بازار موندنې، تولید، درملو او ډیری نورو صنعتونو په برخو کې یو شمیر پلي شوي قضیې (د سرچینې کوډ او ازموینې ډاټا سره) لري. د ML Toolkit کاروونکي ګروپ سره د یوځای کیدو لپاره، مهرباني وکړئ لاندې پتې ته یو لنډ بریښنالیک واستوئ: [ایمیل خوندي شوی] او په خپل لیک کې لاندې معلومات شامل کړئ:

  • د GitHub کارن نوم
  • سازمان (تاسو کار یا مطالعه کوئ)
  • موقعیت (ستاسو په سازمان کې ستاسو اصلي موقف، یا "شاګرد" یا "خپلواک").
  • هیواد

د هغو کسانو لپاره چې مقاله یې لوستلې او د مصنوعي استخباراتو او ماشین زده کړې میکانیزمونو رامینځته کولو یا کوربه توب کولو لپاره د پلیټ فارم په توګه د InterSystems IRIS سره علاقه لري ، موږ تاسو ته بلنه درکوو چې ستاسو شرکت ته د علاقې احتمالي سناریوګانو په اړه بحث وکړئ. موږ به په اسانۍ سره ستاسو د تصدۍ اړتیاوې تحلیل کړو او په ګډه به د عمل پلان وټاکو؛ زموږ د AI/ML متخصص ګروپ بریښنالیک آدرس سره اړیکه ونیسئ - [ایمیل خوندي شوی].

سرچینه: www.habr.com

Add a comment