دا مقاله د Python Gateway په اړه ده، د InterSystems IRIS ډیټا پلیټ فارم لپاره د خلاصې سرچینې ټولنې پروژه. دا پروژه تاسو ته اجازه درکوي چې په Python کې رامینځته شوي د ماشین زده کړې الګوریتمونه تنظیم کړئ (د ډیری ډیټا ساینس پوهانو لپاره اصلي چاپیریال) ، د انټر سیسټم IRIS پلیټ فارم کې د ګړندي تطبیق ، روبوټیک تحلیلي AI / ML حلونو رامینځته کولو لپاره ډیری چمتو شوي کتابتونونه وکاروئ. پدې مقاله کې ، زه به تاسو ته وښیم چې څنګه InterSystems IRIS کولی شي د Python پروسې تنظیم کړي ، د دوه اړخیز ډیټا لیږد مؤثره ترسره کړي ، او هوښیار سوداګرۍ پروسې رامینځته کړي.
پلان
- پېژندنه.
- وسیلې.
- نصب کول.
- API.
- متقابل عمل
- Jupyter نوټ بوک.
- پایلې
- لینکونه.
- 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 څخه عکس وکاروئ
- خپل نظر جوړ کړئ
د نصب کولو میتود په پام کې نیولو پرته، تاسو به د سرچینې کوډ ته اړتیا ولرئ. د کوډ ډاونلوډ کولو یوازینی ځای دی
OS
که تاسو په عملیاتي سیسټم کې د Python Gateway نصب کوئ، نو لومړی (پرته له دې چې عملیاتي سیسټم وي) تاسو باید Python نصب کړئ. د دى لپاره:
Python 3.6.7 64 bit نصب کړئ . دا سپارښتنه کیږي چې په ډیفالټ ډایرکټر کې Python نصب کړئ.- ماډل نصب کړئ
dill
:pip install dill
. - د آبجیکٹ سکریپټ کوډ ډاونلوډ کړئ (د مثال په توګه
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)
) د محصولاتو سره هرې سیمې ته. په هغه صورت کې چې تاسو د محصولاتو مالتړ لپاره موجوده ساحه غواړئ، چل کړئ:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1)
. - ځای
کال آوټ DLL/SO/DYLIB فولډر تهbin
ستاسو د InterSystems IRIS مثال. د کتابتون فایل باید په هغه لاره کې شتون ولري چې بیرته راستانه شويwrite ##class(isc.py.Callout).GetLib()
.
Windows
- ډاډ ترلاسه کړئ چې د چاپیریال متغیر دی
PYTHONHOME
Python 3.6.7 ته اشاره کوي. - ډاډ ترلاسه کړئ چې د سیسټم چاپیریال متغیر دی
PATH
یو متغیر لريPYTHONHOME
(یا هغه لارښود چې ورته اشاره کوي).
لینکس (دبیان / اوبنټو)
- وګورئ چې ایا د چاپیریال متغیر دی
PATH
لري/usr/lib
и/usr/lib/x86_64-linux-gnu
. فایل وکاروئ/etc/environment
د چاپیریال متغیرونو تنظیم کول. - د تېروتنو په صورت کې
undefined symbol: _Py_TrueStruct
ترتیب تنظیم کړئPythonLib
. هم په کېلوستل د ستونزو حل کولو برخه شتون لري.
مېک
- اوس مهال یوازې د python 3.6.7 څخه ملاتړ کیږي
پیتون ..org . متغیر چیک کړئPATH
.
که تاسو د چاپیریال تغیرات بدل کړي وي، خپل د InterSystems محصول بیا پیل کړئ.
ډاکر
د کانتینرونو کارول یو شمیر ګټې لري:
- د پورټ وړتیا
- اغیزمنتوب
- موصلیت
- رڼا
- بې ثباتي
دا وګورئ
د 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
خالي، چک
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
- د پیل IDend
- وروستۍ پیژندنه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
ټول دلیلونه پرته له دې چې د ډاټا سرچینې (نړیوال، ټولګي یا جدول) او متغیر اختیاري دي.
مثالونه
د ازموینې ټولګي
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
.
د سوداګرۍ پروسې ازموینه
د ازموینې تولید او ازموینې سوداګرۍ پروسه د پایتون ګیټ وے برخې په توګه په ډیفالټ کې شتون لري. د دوی کارولو لپاره:
- د OS ترمینل چلولو کې:
pip install pandas matplotlib seaborn
. - د InterSystems IRIS ترمینل کې، چلول:
do ##class(isc.py.test.CannibalizationData).Import()
د ازموینې ډاټا ډکولو لپاره. - محصولات پیل کړئ
isc.py.test.Production
. - د غوښتنې ډول لیږل
Ens.Request
вisc.py.test.Process
.
راځئ وګورو چې دا ټول څنګه یوځای کار کوي. خلاص isc.py.test.Process
د BPL مدیر کې:
د کوډ اجرا کول
ترټولو مهم کال د Python کوډ اجرا کول دي:
غوښتنه کارول isc.py.msg.ExecutionRequest
دلته د هغې ځانګړتیاوې دي:
Code
- د Python کوډ.SeparateLines
- ایا کوډ د اجرا کولو لپاره په لینونو ویشل.$c(10)
(n
) د تارونو جلا کولو لپاره کارول کیږي. مهرباني وکړئ په یاد ولرئ چې دا سپارښتنه نه کیږي چې ټول پیغام په یوځل کې پروسس کړئ، دا فعالیت یوازې د پروسس کولو لپاره دیdef
او ورته څو کرښې څرګندونه. ډیفالټ0
.Variables
د کوما لخوا جلا شوی د متغیرونو لیست دی چې په ځواب کې به اضافه شي.Serialization
- هغه متغیرونه څنګه سریالیز کړئ چې موږ یې غواړو بیرته راستانه کړو. اختیارونه:Str
,Repr
,JSON
,Pickle
иDill
, defaultStr
.
زموږ په قضیه کې، موږ یوازې ملکیت ترتیب کوو Code
د دې لپاره چې نور ټول ملکیتونه خپل اصلي ارزښتونه کاروي. موږ یې د زنګ وهلو له لارې تنظیم کړو process.GetAnnotation("Import pandas")
، کوم چې د چلولو په وخت کې د متغیر بدیل ترسره کیدو وروسته تشریح راګرځوي. په پای کې کوډ import pandas as pd
Python ته لیږدول کیږي. GetAnnotation
د ملټي لاین پیتون سکریپټونو ترلاسه کولو لپاره ګټور کیدی شي ، مګر د کوډ ترلاسه کولو پدې لاره کې هیڅ محدودیت شتون نلري. تاسو کولی شئ ملکیت تنظیم کړئ Code
په هر ډول چې ستاسو لپاره مناسب وي.
د تغیراتو ترلاسه کول
د کارولو بله په زړه پورې ننګونه isc.py.msg.ExecutionRequest
- Correlation Matrix: Tabular
:
دا د Python اړخ کې د ارتباط میټرکس محاسبه کوي او متغیر استخراج کوي corrmat
د غوښتنې ملکیتونو تنظیم کولو سره د JSON ب formatه کې InterSystems IRIS ته بیرته:
Variables
:"corrmat"
Serialization
:"JSON"
موږ کولی شو پایلې په بصری ټریس کې وګورو:
او که موږ په 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
په عمل کې ښودل شوي.
د 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 نوټ بوک
دا توسیع فرض کوي چې تشریحات د Python کوډ لري او د مخکیني سرلیکونو په توګه د فعالیت نومونه کاروي. اوس دا ممکنه ده چې په Jupyter نوټ بوک کې د PythonGateway سوداګرۍ پروسې رامینځته کړئ. دلته هغه څه دي چې ممکن دي:
- د سوداګرۍ نوې پروسې رامینځته کړئ
- د سوداګرۍ پروسې حذف کړئ
- نوي فعالیتونه رامینځته کړئ
- فعالیتونه بدل کړئ
- فعالیتونه حذف کړئ
دلته
د پروسې سپړونکی
د پروسې مدیر
د جوړولو
- تاسو به د InterSystems IRIS 2019.2+ ته اړتیا ولرئ.
- PythonGateway v0.8+ نصب کړئ (یوازې اړتیا لري
isc.py.util.Jupyter
,isc.py.util.JupyterCheckpoints
иisc.py.ens.ProcessUtils
). - د ذخیرې څخه د ObjectScript کوډ تازه کړئ.
- چلول
do ##class(isc.py.util.Jupyter).Install()
او لارښوونې تعقیب کړئ.
موندنو
MLToolkit د وسیلو یوه ټولګه ده چې هدف یې د ماډلونو او د لیږد چاپیریال سره یوځای کول دي ترڅو جوړ شوي ماډلونه په اسانۍ سره ستاسو د سوداګرۍ پروسو کې په اسانۍ سره وکارول شي. د Python Gateway د MLToolkit برخه ده او د Python ژبې سره ادغام چمتو کوي، تاسو ته اجازه درکوي چې په Python کې رامینځته شوي د ماشین زده کړې الګوریتمونه تنظیم کړئ (د ډیری ډیټا ساینس پوهانو لپاره اصلي چاپیریال)، ډیری چمتو شوي کتابتونونه وکاروئ ترڅو ژر تر ژره تطبیقونکي، روبوټیک تحلیلي AI / د InterSystems پلیټ فارم IRIS کې د ML حلونه.
مرجع
مخکینی مقاله Python Gateway د Python Gateway نمونې متقابل تجزیه Python 3.6.7 64bit د Python اسناد او کورسونه
MLToolkit
د MLToolkit کاروونکي ګروپ یو شخصي GitHub ذخیره ده چې د InterSystems کارپوریټ GitHub سازمان د یوې برخې په توګه رامینځته شوی. دا هغه بهرني کاروونکو ته په ګوته شوي چې د Python Gateway په ګډون د MLToolkit اجزا نصبوي، زده کوي یا دمخه کاروي. دا ډله د بازار موندنې، تولید، درملو او ډیری نورو صنعتونو په برخو کې یو شمیر پلي شوي قضیې (د سرچینې کوډ او ازموینې ډاټا سره) لري. د ML Toolkit کاروونکي ګروپ سره د یوځای کیدو لپاره، مهرباني وکړئ لاندې پتې ته یو لنډ بریښنالیک واستوئ:
- د GitHub کارن نوم
- سازمان (تاسو کار یا مطالعه کوئ)
- موقعیت (ستاسو په سازمان کې ستاسو اصلي موقف، یا "شاګرد" یا "خپلواک").
- هیواد
د هغو کسانو لپاره چې مقاله یې لوستلې او د مصنوعي استخباراتو او ماشین زده کړې میکانیزمونو رامینځته کولو یا کوربه توب کولو لپاره د پلیټ فارم په توګه د InterSystems IRIS سره علاقه لري ، موږ تاسو ته بلنه درکوو چې ستاسو شرکت ته د علاقې احتمالي سناریوګانو په اړه بحث وکړئ. موږ به په اسانۍ سره ستاسو د تصدۍ اړتیاوې تحلیل کړو او په ګډه به د عمل پلان وټاکو؛ زموږ د AI/ML متخصص ګروپ بریښنالیک آدرس سره اړیکه ونیسئ -
سرچینه: www.habr.com