Le ndatshana imayelana ne-Python Gateway, iphrojekthi yomphakathi evulekile yomthombo wedatha we-InterSystems IRIS. Le phrojekthi ikuvumela ukuthi uhlele noma yimaphi ama-algorithms okufunda omshini adalwe ku-Python (indawo eyinhloko yoSosayensi Bedatha abaningi), sebenzisa imitapo yolwazi eminingi esenziwe ngomumo ukuze udale ngokushesha izixazululo ze-AI / ML eziguquguqukayo, zerobhothi endaweni yesikhulumi se-InterSystems IRIS. Kulesi sihloko, ngizokukhombisa ukuthi i-InterSystems IRIS ingakwazi kanjani ukuhlela izinqubo zePython, yenze ukudluliselwa kwedatha okunezindlela ezimbili ngendlela ephumelelayo, futhi idale izinqubo zebhizinisi ezihlakaniphile.
Hlela
- Isingeniso.
- Amathuluzi.
- Ukufaka
- I-API.
- Ukusebenzisana.
- I-Jupyter Notebook.
- Iziphetho.
- Izixhumanisi.
- I-M.L.Toolkit.
Isingeniso
I-Python iyizinga eliphezulu, ulimi lokuhlela lwenhloso evamile olugxile ekuthuthukiseni ukukhiqiza konjiniyela kanye nokufundeka kwekhodi. Kulolu chungechunge lwezihloko, ngizokhuluma ngamathuba okusebenzisa ulimi lwePython endaweni yesikhulumi se-InterSystems IRIS, kuyilapho ukugxila okuyinhloko kwalesi sihloko ukusetshenziswa kwePython njengolimi lokudala nokusebenzisa amamodeli wokufunda womshini.
Ukufunda ngomshini (ML) kuyikilasi lezindlela zobuhlakani bokwenziwa, isici esiwuphawu esingesona isixazululo esiqondile senkinga, kodwa ukufunda ngenqubo yokuxazulula izinkinga eziningi ezifanayo.
Ama-algorithms wokufunda komshini namamodeli aya ngokuya avama. Ziningi izizathu zalokhu, kodwa konke kuncike ekufinyelelekeni, ubulula, kanye nokuzuza imiphumela ebonakalayo. Ingabe i-clustering noma i-neural network modeling iwubuchwepheshe obusha?
Akunjalo, kodwa namuhla asikho isidingo sokubhala amakhulu ezinkulungwane zemigqa yekhodi ukusebenzisa imodeli eyodwa, futhi izindleko zokudala nokusebenzisa amamodeli ziba zincane futhi zibe zincane.
Amathuluzi ayathuthuka - kuyilapho singenawo amathuluzi e-AI/ML agxile ku-GUI ngokugcwele, inqubekelaphambili esiyibonile nezinye izigaba eziningi zezinhlelo zolwazi ezifana ne-BI (kusuka ekubhaleni ikhodi kuya ekusebenziseni izinhlaka kanye nezisombululo ezilungisekayo eziqondiswe ku-GUI) , nayo iyabonakala. kumathuluzi okudala we-AI/ML. Sesivele siphumelele isigaba sekhodi yokubhala futhi namuhla sisebenzisa izinhlaka zokwakha nokuqeqesha amamodeli.
Okunye ukuthuthukiswa, okufana nekhono lokusabalalisa imodeli eqeqeshwe ngaphambilini lapho umsebenzisi wokugcina kufanele avele aqedele ukuqeqesha imodeli kudatha yakhe ethile, nakho kukwenze kube lula ukuqala ukusebenzisa ukufunda komshini. Lokhu kuthuthuka kwenza kube lula kakhulu ukufunda umshini wokufunda, kochwepheshe kanye nezinkampani zizonke.
Ngakolunye uhlangothi, siqoqa idatha eyengeziwe. Ngenkundla yedatha ehlanganisiwe efana ne-InterSystems IRIS, lonke lolu lwazi lungalungiselelwa ngokushesha futhi lusetshenziswe njengokufakwayo kwamamodeli okufunda omshini.
Ngokushintshela emafini, ukwethula amaphrojekthi e-AI/ML kulula kunangaphambili. Singadla kuphela izinsiza esizidingayo. Ngaphezu kwalokho, ngenxa yokufana okunikezwa amapulatifomu amafu, singonga isikhathi esichithiwe.
Kodwa kuthiwani ngemiphumela? Yilapho izinto ziba nzima khona. Kunamathuluzi amaningi okwakha amamodeli, engizoxoxa ngawo ngokulandelayo. Ukwakha imodeli enhle akulula, kodwa yini elandelayo? Ukuzuza ngokusetshenziswa kwemodeli yibhizinisi nakho kuwumsebenzi ongewona omncane. Umsuka wenkinga ukuhlukaniswa komthwalo wokuhlaziya nowokwenziwayo namamodeli wedatha. Uma siqeqesha imodeli, ngokuvamile sikwenza kudatha yomlando. Kodwa indawo yemodeli eyakhiwe isekucutshungulweni kwedatha yokwenziwayo. Isiza ngani imodeli engcono kakhulu yokuthola umsebenzi womgunyathi uma siyisebenzisa kanye ngosuku? Amaqola kade ahamba nemali. Kudingeka siqeqeshe imodeli kudatha yomlando, kodwa futhi sidinga ukuyisebenzisa ngesikhathi sangempela kudatha entsha engenayo ukuze izinqubo zethu zebhizinisi zenze ngokuvumelana nezibikezelo ezenziwe imodeli.
I-ML Toolkit iyikhithi yamathuluzi eyenza lokho kanye: ukuhlanganisa amamodeli kanye nendawo yokuthengiselana ukuze amamodeli owakhayo asetshenziswe kalula ezinqubweni zebhizinisi lakho. I-Python Gateway iyingxenye ye-ML Toolkit futhi inikeza ukuhlanganiswa nolimi lwePython (elifana ne-R Gateway, ukuba yingxenye ye-ML Toolkit kunikeza ukuhlanganiswa nolimi R).
Ithuluzi
Ngaphambi kokuthi siqhubeke, ngingathanda ukuchaza amathuluzi ambalwa wePython nemitapo yolwazi esizoyisebenzisa kamuva.
of technology
- I-Python iwulimi oluhunyushiwe, lwenhloso evamile, olusezingeni eliphezulu. Inzuzo enkulu yolimi umtapo wolwazi omkhulu wemitapo yolwazi yezibalo, i-ML ne-AI. Njenge-ObjectScript, iwulimi olugxile entweni, kodwa yonke into ichazwa ngokuguquguqukayo, hhayi ngokwezibalo. Futhi yonke into iyinto. Ama-athikili akamuva aqala ukujwayelana nolimi. Uma ufuna ukuqala ukufunda, ngincoma ukuthi uqale ngakho
imibhalo . - Ngokuzivocavoca kwethu okulandelayo, setha
I-Python 3.6.7 64bit . - IDE: Ngiyasebenzisa
I-PyCharm , kodwa ngokuvamileΠΌΠ½ΠΎΠ³ΠΎ . Uma usebenzisa i-Atelier, kune-plugin ye-Eclipse yabathuthukisi bePython. Uma usebenzisa Ikhodi ye-VS, khona-ke kukhona isandiso sePython. - I-Notebook: Esikhundleni se-IDE, ungabhala futhi wabelane ngemibhalo yakho ezincwadini zamanothi eziku-inthanethi. Okudume kakhulu kubo
I-Jupyter .
Imitapo yolwazi
Nalu uhlu (oluyingxenye) lwamalabhulali okufunda ngomshini:
numpy - iphakethe eliyisisekelo lezibalo eziqondile.AmaPandas - izakhiwo zedatha ezisebenza kahle namathuluzi okuhlaziya idatha.I-Matplotlib - Ukwakhiwa kwamashadi.ozalwa olwandle - ukubonwa kwedatha okusekelwe ku-matplotlib.Sklearn - Izindlela zokufunda ngomshini.XGBoost - ama-algorithms wokufunda komshini ngaphakathi kwendlela ye-Gradient Boosting.Gensim - I-NLP.UKeras - amanethiwekhi we-neural.I-Tensorflow iyinkundla yokudala amamodeli okufunda omshini.I-PyTorch iyinkundla yokudala amamodeli okufunda omshini agxile kuPython.Nyoka - PMML kusuka kumamodeli ahlukahlukene.
Ubuchwepheshe be-AI/ML benza ibhizinisi lisebenze kahle futhi livumelane nezimo. Ngaphezu kwalokho, namuhla lobu buchwepheshe buba lula ukuthuthukisa nokusebenzisa. Qala ukufunda ngobuchwepheshe be-AI/ML nokuthi bungasiza kanjani inhlangano yakho ukuthi ikhule.
setting
Kunezindlela ezimbalwa zokufaka nokusebenzisa iPython Gateway:
- I-ΠΠ‘
- Windows
- Linux
- Mac
- Docker
- Sebenzisa isithombe esivela ku-DockerHub
- Dala ukubukeka kwakho
Kungakhathalekile ukuthi iyiphi indlela yokufaka, uzodinga ikhodi yomthombo. Indawo kuphela yokulanda ikhodi
I-ΠΠ‘
Uma ufaka i-Python Gateway ohlelweni lokusebenza, khona-ke okokuqala (kungakhathaliseki ukuthi uhlelo lokusebenza) uzodinga ukufaka i-Python. Kwalokhu:
Faka iPython 3.6.7 64 bit . Kunconywa ukufaka i-Python kumkhombandlela ozenzakalelayo.- Faka imojuli
dill
:pip install dill
. - Landa ikhodi ye-ObjectScript (isb.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)
) kunoma iyiphi indawo enemikhiqizo. Uma kwenzeka ufuna indawo ekhona ukuthi isekele imikhiqizo, sebenzisa:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1)
. - Indawo
I-callout DLL/SO/DYLIB kufoldabin
isibonelo sakho se-InterSystems IRIS. Ifayela lomtapo wolwazi kufanele litholakale endleleni ebuyiswa ngayowrite ##class(isc.py.Callout).GetLib()
.
Windows
- Qiniseka ukuthi imvelo variable
PYTHONHOME
ukhomba kuPython 3.6.7. - Qinisekisa ukuthi i-variable yemvelo yesistimu injalo
PATH
iqukethe okuguquguqukayoPYTHONHOME
(noma uhla lwemibhalo olukhomba kulo).
Linux (Debian/Ubuntu)
- Hlola ukuthi ngabe imvelo iguquguqukayo
PATH
iqukethe/usr/lib
ΠΈ/usr/lib/x86_64-linux-gnu
. Sebenzisa Ifayela/etc/environment
ukusetha okuguquguqukayo kwemvelo. - Uma kwenzeka amaphutha
undefined symbol: _Py_TrueStruct
setha isilungiseleloPythonLib
. futhi kuReadme kukhona isigaba sokuxazulula inkinga.
Mac
- Okwamanje yi-python 3.6.7 kuphela esekelwe kuyo
IPython.org . Hlola OkuguquguqukayoPATH
.
Uma ushintshe okuguquguqukayo kwendawo, qala kabusha umkhiqizo wakho we-InterSystems.
Docker
Ukusebenzisa iziqukathi kunezinzuzo eziningi:
- Ukuphatheka
- Ukuphumelela
- I-Insulation
- ubulula
- Ukungaguquki
Bheka lokhu
Zonke izakhiwo zePython Gateway njengamanje zisekelwe esitsheni. 2019.4
.
Isithombe esiqediwe
Gijima: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latest
ukulanda nokusebenzisa i-Python Gateway nge-InterSystems IRIS Community Edition. Yilokho kuphela.
Dala ukubukeka kwakho
Ukuze wakhe isithombe sedokhu, sebenzisa impande yendawo yokugcina: docker build --force-rm --tag intersystemscommunity/irispy:latest .
.
Ngokuzenzakalelayo, isithombe sakhiwe ngokusekelwe esithombeni store/intersystems/iris-community:2019.4.0.383.0
, nokho ungakushintsha lokhu ngokusetha okuguquguqukayo IMAGE
.
Ukwakha kusuka ku-InterSystems sebenzisa i-IRIS: `i-docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest'.
Ngemuva kwalokho, ungasebenzisa isithombe se-docker:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.key
Uma usebenzisa isithombe esisuselwe ku-InterSystems IRIS Community Edition, awudingi ukucacisa ukhiye.
Amazwana
- Inqubo Yokuhlola
isc.py.test.Process
igcina inani lezithombe kuhla lwemibhalo lwesikhashana. Ungase ufune ukushintsha le ndlela kuhla lwemibhalo olugxunyekiwe. Ukuze wenze lokhu, hlela isilungiseleloWorkingDir
ecacisa uhla lwemibhalo olukhweziwe. - Ukuze ufinyelele itheminali, sebenzisa:
docker exec -it irispy sh
. - Ukufinyelela Kuphothali Yokuphathwa Kwesistimu ngokungena ngemvume
SuperUser
/SYS
. - Ukuze umise isiqukathi, sebenzisa:
docker stop irispy && docker rm --force irispy
.
Ihlola ukufakwa
Uma usuyifakile iPython Gateway, kufanelekile ukuhlola ukuthi iyasebenza. Qalisa le khodi kutheminali ye-InterSystems IRIS:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var
Umphumela kufanele ube HELLO
- inani le-Python variable x
. Uma isimo ukubuya sc
yiphutha noma var
ngenalutho, hlola
API
I-Python Gateway ifakiwe futhi uqinisekisile ukuthi iyasebenza. Isikhathi sokuqala ukuyisebenzisa!
I-interface eyinhloko ku-Python yi isc.py.Main
. Inikeza amaqembu alandelayo ezindlela (zonke ziyabuya %Status
):
- Ukwenziwa kwekhodi
- Ukudluliswa kwedatha
- Umsizi
Ukwenziwa kwekhodi
Lezi zindlela zikuvumela ukuthi wenze ikhodi ye-Python engafanele.
I-SimpleString
SimpleString
indlela eyinhloko. Kudingeka izimpikiswano ezi-4 ozikhethela zona:
code
umugqa wekhodi ozowusebenzisa. Uhlamvu lwesiphakeli somugqa:$c(10)
.returnVariable
igama lokuguquguquka okumele kubuyiswe.serialization
- kanjani ukwenza serialreturnVariable
. 0 - iyunithi yezinhlamvu (okuzenzakalelayo), 1 - repr.result
- Ireferensi ye-ByRef yokuguquguquka lapho kubhalwa khona inanireturnVariable
.
Ngenhla senze:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
Kulesi sibonelo, sabela ukuguquguquka kwePython x
okusho Hello
futhi ufuna ukubuyisela inani le-Python variable x
kokuguquguquka kwe-ObjectScript var
.
Yenza Ikhodi
I-ExecuteCode iyindlela ephephile nenemingcele encane SimpleString
.
Imigqa yeplathifomu ye-InterSystems IRIS ikhawulelwe ezinhlamvu ezingu-3, futhi uma ufuna ukwenza ucezu olude lwekhodi, udinga ukusebenzisa ukusakaza.
Kudingeka izimpikiswano ezimbili:
code
- iyunithi yezinhlamvu noma ukusakaza kwekhodi yePython okufanele isetshenziswe.variable
- (ongakukhetha) yabela umphumela wokubulawacode
lokhu okuguquguqukayo kwePython.
Phakamisa ukusebenzisa:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").
Kulesi sibonelo, siphindaphinda u-2 ngo-3 futhi sigcina umphumela ku-variable ye-Python y
.
Ukudluliswa kwedatha
Dlulisa idatha uye noma usuke ePython.
I-Python -> I-InterSystems IRIS
Kunezindlela ezi-4 zokuthola inani lokuguquguquka kwePython ku-InterSystems IRIS, kuya ngohlelo oludingayo:
String
ngezinhlobo zedatha ezilula nokulungisa iphutha.Repr
yokugcina izinto ezilula kanye nokulungisa iphutha.JSON
ukuze kube lula ukukhohlisa idatha ohlangothini lwe-InterSystems IRIS.Pickle
ukulondoloza izinto.
Lezi zindlela zikuvumela ukuthi uthole okuguquguqukayo kusuka ku-Python njengentambo noma njengemifudlana.
GetVariable(variable, serialization, .stream, useString)
- tholaserialization
eguquguqukayovariable
Π²stream
. UmauseString
ngu-1 futhi uchungechunge kufakwa kuyunithi yezinhlamvu, bese kubuyiselwa iyunithi yezinhlamvu, hhayi ukusakaza.GetVariableJson(variable, .stream, useString)
- thola ukukhiqizwa kwe-JSON kokuguquguqukayo.GetVariablePickle(variable, .stream, useString, useDill)
-Thola i-Pickle (noma i-Dill) yokulinganisa kokuguquguqukayo.
Ake sizame ukuthola okuguquguqukayo kwethu y
.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6
I-InterSystems IRIS -> Python
Ilayisha idatha kusuka ku-InterSystems IRIS ku-Python.
ExecuteQuery(query, variable, type, namespace)
- yakha idathasethi (pandasdataframe
nomalist
) kusuka kumbuzo we-sql bese usetha ku-python variablevariable
. Isikhwama sepulasitikiisc.py
kufanele itholakale endaweninamespace
- isicelo sizokwenziwa lapho.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)
- ilayisha idatha yomhlaba wonkeglobal
kusuka kokubhaliselwestart
ukuzeend
kuPython njengohlobo oluguquguqukayotype
:list
, noma ama-pandadataframe
. Incazelo yezimpikiswano ozikhethela zonamask
futhilabels
etholakala kumibhalo yekilasi kanye nenqolobaneAmadokhumenti okudlulisa idatha .ExecuteClass(class, variable, type, start, end, properties, namespace)
- ilayisha idatha yekilasiclass
kusuka ku-idstart
ukuzeend
kuPython njengohlobo oluguquguqukayotype
:list
, noma ama-pandadataframe
.properties
β uhlu (luhlukaniswe ngokhefana) lwezakhiwo zekilasi ezizolayishwa kudathasethi. Amamaski asekelwe*
ΠΈ?
. Okuzenzakalelayo -*
(zonke izakhiwo). Impahla%%CLASSNAME
indiva.ExecuteTable(table, variable, type, start, end, properties, namespace)
- Ilayisha idatha yetafulatable
kusuka ku-idstart
ukuzeend
ku-python.
ExecuteQuery
- jikelele (noma yimuphi umbuzo we-SQL ovumelekile uzodluliselwa ku-Python). Nokho, ExecuteGlobal
nezingubo zakhe ExecuteClass
ΠΈ ExecuteTable
sebenza ngenani lemikhawulo. Zishesha kakhulu (izikhathi ezi-3-5 ngokushesha kunomshayeli we-ODBC futhi zishesha izikhathi ezingama-20 kune ExecuteQuery
). Ulwazi olwengeziwe ku
Zonke lezi zindlela zisekela ukudluliswa kwedatha kunoma iyiphi indawo. Isikhwama sepulasitiki isc.py
kufanele itholakale endaweni okuhlosiwe.
I-ExecuteQuery
ExecuteQuery(request, variable, type, namespace)
- Ukudlulisa imiphumela yanoma yimuphi umbuzo ovumelekile we-SQL kuPython. Lena indlela yokudlulisa idatha enensa kakhulu. Yisebenzise uma ExecuteGlobal
futhi izisonga zayo azitholakali.
Izimpikiswano:
query
- sql umbuzo.variable
- igama lokuguquguquka kwePython lapho idatha ibhalwe khona.type
-list
noma ama-pandadataframe
.namespace
- indawo lapho isicelo sizokwenziwa khona.
I-ExecuteGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace)
- ukudlulisa umhlaba kuPython.
Izimpikiswano:
global
yigama lomhlaba wonke ngaphandle^
variable
- igama lokuguquguquka kwePython lapho idatha ibhalwe khona.type
-list
noma ama-pandadataframe
.start
- okubhaliselwe kokuqala komhlaba jikelele. Impela%Integer
.end
umbhalo wokugcina womhlaba jikelele. Impela%Integer
.mask
- imaski yamagugu omhlaba. Imaski ingaba mfushane kunenombolo yezinkambu emhlabeni jikelele (lapho izinkambu ekugcineni zizokweqiwa). Indlela yokufometha imaski:+
dlulisa inani njengoba linjalo.-
ukweqa inani.b
- Uhlobo lwe-Boolean (0
-False
, konke okunye -True
).d
- Usuku (kusuka ku-$horolog, ku-Windows kusuka ngo-1970, ku-Linux kusukela ngo-1900).t
- Isikhathi ($ horolog, imizuzwana ngemva kwamabili).m
- Isitembu sesikhathi (YEAR-MONTH-DAY HOUR:MINUTE:SECOND format string).
labels
- %Uhlu lwamagama ekholomu. I-elementi yokuqala igama lombhalo obhalisiwe.namespace
- indawo lapho isicelo sizokwenziwa khona.
I-ExecuteClass
ukugoqa ExecuteGlobal
. Ilungiselela ikholi ngokusekelwe encazelweni yekilasi ExecuteGlobal
ambize.
ExecuteClass(class, variable, type, start, end, properties, namespace)
- ukudlulisa idatha yekilasi kuPython.
Izimpikiswano:
class
- igama lekilasivariable
- igama lokuguquguquka kwePython lapho idatha ibhalwe khona.type
-list
noma ama-pandadataframe
.start
- ukuqala Id.end
- I-Id yokugcinaproperties
β uhlu (luhlukaniswe ngokhefana) lwezakhiwo zekilasi ezizolayishwa kudathasethi. Amamaski asekelwe*
ΠΈ?
. Okuzenzakalelayo -*
(zonke izakhiwo). Impahla%%CLASSNAME
indiva.namespace
- indawo lapho isicelo sizokwenziwa khona.
Zonke izakhiwo zidluliswa njengoba zinjalo ngaphandle kwezakhiwo zohlobo %Date
, %Time
, %Boolean
ΠΈ %TimeStamp
- aguqulwa abe amakilasi ahambisanayo ePython.
I-ExecuteTable
ukugoqa ExecuteClass
. Ihumusha igama lethebula libe yigama lekilasi namakholi ExecuteClass
. Isiginesha:
ExecuteTable(table, variable, type, start, end, properties, namespace)
- ukudlulisa idatha yetafula kuPython.
Izimpikiswano:
table
- Igama lethebula.
Zonke ezinye izingxabano zidluliswa njengoba kunjalo.ExecuteClass
.
Amanothi
ExecuteGlobal
,ExecuteClass
ΠΈExecuteTable
sebenza ngokulinganayo.ExecuteGlobal
20 izikhathi ngokushesha kunaleyoExecuteQuery
kumadathasethi amakhulu (isikhathi sokudlulisa > isekhondi elingu-0.01).ExecuteGlobal
,ExecuteClass
ΠΈExecuteTable
sebenza kuma-globals ngalesi sakhiwo:^global(key) = $lb(prop1, prop2, ..., propN)
kuphikey
iyinombolo ephelele.- Ukuze
ExecuteGlobal
,ExecuteClass
ΠΈExecuteTable
ububanzi benani elisekelwe%Date
ihambisana nobubanzimktime
futhi kuncike ku-OSwindows : 1970-01-01,Linux 1900-01-01,mac ). Sebenzisa%TimeStamp
ukudlulisa idatha ngaphandle kwalobu bubanzi noma usebenzise i-pandas dataframe njenge lo mkhawulo owohlu kuphela. - Ukuze
ExecuteGlobal
,ExecuteClass
ΠΈExecuteTable
wonke ama-agumenti ngaphandle komthombo wedatha (imbulunga yonke, ikilasi noma ithebula) nokuhlukahluka kungokuzithandela.
Izibonelo
ikilasi lokuhlola
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)
indlela yokubiza do ##class(isc.py.test.Person).Test()
ukuze ubone ukuthi zonke izindlela zokudlulisa idatha zisebenza kanjani.
Izindlela Zokusiza
GetVariableInfo(variable, serialization, .defined, .type, .length)
- thola ulwazi mayelana nokuguquguquka: noma ngabe kuchaziwe, isigaba kanye nobude bokulinganisa.GetVariableDefined(variable, .defined)
- ukuthi ngabe okuguquguqukayo kuchaziwe.GetVariableType(variable, .type)
- thola isigaba sokuguquguquka.GetStatus()
- thola futhi ususe okuhlukile kokugcina ohlangothini lwePython.GetModuleInfo(module, .imported, .alias)
β thola imojuli eguquguqukayo nesimo sokungenisa.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)
- thola ulwazi mayelana nomsebenzi.
Ukusebenzisana
Ufunde ukuthi ungabiza kanjani i-Python Gateway kusuka ku-terminal, manje ake siqale ukuyisebenzisa ekukhiqizeni. Isisekelo sokuxhumana nePython kule modi siwukuthi isc.py.ens.Operation
. Iyasivumela:
- Yenza ikhodi ye-Python
- Londoloza/Buyisela Okuqukethwe KwePython
- Layisha futhi wamukele idatha evela kuPython
Ngokuyisisekelo, ukusebenza kwe-Pyhton kuwukugoqa ngaphezulu isc.py.Main
. Ukusebenza isc.py.ens.Operation
ivumela ukusebenzisana nenqubo yePython kusuka kumikhiqizo ye-InterSystems IRIS. Izicelo ezinhlanu ziyasekelwa:
isc.py.msg.ExecutionRequest
ukwenza ikhodi yePython. izimbuyiseloisc.py.msg.ExecutionResponse
ngomphumela wokwenza kanye namanani okuguquguqukayo okuceliwe.isc.py.msg.StreamExecutionRequest
ukwenza ikhodi yePython. izimbuyiseloisc.py.msg.StreamExecutionResponse
umphumela wokwenziwa kanye namanani okuguquguqukayo okuceliwe. I-Analogisc.py.msg.ExecutionRequest
, kodwa yamukela futhi ibuyisele ukusakaza esikhundleni seyunithi yezinhlamvu.isc.py.msg.QueryRequest
ukudlulisa umphumela wokwenza umbuzo we-SQL. izimbuyiseloEns.Response
.isc.py.msg.GlobalRequest
/isc.py.msg.ClassRequest
/isc.py.msg.TableRequest
ukudlulisa idatha yomhlaba jikelele/yekilasi/yethebula. izimbuyiseloEns.Response
.isc.py.msg.SaveRequest
ukusindisa umongo wePython. izimbuyiseloEns.StringResponse
nge-ID yomongo.-
isc.py.msg.RestoreRequest
ukubuyisela umongo wePython.Ngaphezu kwalokho,
isc.py.ens.Operation
inezilungiselelo ezimbili:Initializer
- ukukhetha ikilasi esebenzisa isixhumi esibonakalayoisc.py.init.Abstract
. Ingasetshenziselwa ukulayisha imisebenzi, amamojula, amakilasi, nokunye okunjalo. Yenziwa kanye lapho inqubo iqala.PythonLib
- (I-Linux kuphela) uma ubona amaphutha e-boot, setha inani layolibpython3.6m.so
noma ngisho nasendleleni egcwele eya kumtapo wezincwadi wePython.
Ukwakhiwa kwezinqubo zebhizinisi
Kunamakilasi amabili atholakalayo asiza ukuthuthukiswa kwezinqubo zebhizinisi:
isc.py.ens.ProcessUtils
ikuvumela ukuthi ukhiphe izichasiselo emisebenzini ngokushintshashintsha okuhlukile.isc.py.util.BPEmulator
yenza kube lula ukuhlola izinqubo zebhizinisi ngePython. Ingakwazi ukwenza inqubo yebhizinisi (izingxenye zePython) kwinqubo yamanje.
Ukushintshwa okuguquguqukayo
Zonke izinqubo zebhizinisi ezizuzwe njengefa isc.py.ens.ProcessUtils
, angasebenzisa indlela GetAnnotation(name)
ukuze uthole inani lesichasiselo somsebenzi ngegama laso. Isichasiselo somsebenzi singaqukatha okuguquguqukayo okuzohlolwa ohlangothini lwe-InterSystems IRIS ngaphambi kokuthi sidluliselwe ku-Python. Nansi i-syntax yokushintshanisa okuguquguqukayo:
${class:method:arg1:...:argN}
- indlela call#{expr}
- sebenzisa ikhodi ngolimi lwe-ObjectScript.
Isibonelo siyatholakala kunqubo yebhizinisi lokuhlola isc.py.test.Process
, isibonelo, emsebenzini Correlation Matrix: Graph
: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png')
. Kulesi sibonelo:
#{process.WorkDirectory}
ibuyisela impahla ye-WorkDirectory yentoprocess
, okuyisibonelo sekilasiisc.py.test.Process
labo. inqubo yebhizinisi yamanje.${%PopulateUtils:Integer:1:100}
ibiza indlelaInteger
class%PopulateUtils
, edlulisa izimpikiswano1
ΠΈ100
, ibuyisela inombolo engahleliwe kububanzi1...100
.
Hlola inqubo yebhizinisi
Ukukhiqizwa kokuhlola kanye nenqubo yebhizinisi yokuhlola kutholakala ngokuzenzakalelayo njengengxenye ye-Python Gateway. Ukuzisebenzisa:
- Ku-terminal ye-OS qalisa:
pip install pandas matplotlib seaborn
. - Kutheminali ye-InterSystems IRIS, sebenzisa:
do ##class(isc.py.test.CannibalizationData).Import()
ukugcwalisa idatha yokuhlola. - Yethula imikhiqizo
isc.py.test.Production
. - Thumela uhlobo lwesicelo
Ens.Request
Π²isc.py.test.Process
.
Ake sibone ukuthi konke kusebenza kanjani ndawonye. vula isc.py.test.Process
kumhleli we-BPL:
Ukwenziwa kwekhodi
Ucingo olubaluleke kakhulu ukubulawa kwekhodi yePython:
Isicelo esisetshenzisiwe isc.py.msg.ExecutionRequest
, nazi izici zayo:
Code
- Ikhodi ye-Python.SeparateLines
- ukuhlukanisa ikhodi ibe yimigqa ukuze isetshenziswe.$c(10)
(n
) isetshenziselwa ukuhlukanisa izintambo. Qaphela ukuthi AKUNQUNYIWE ukucubungula wonke umlayezo ngesikhathi esisodwa, lo msebenzi owokucubungula kupheladef
kanye nezinkulumo zemigqa eminingi efanayo. Okuzenzakalelayo0
.Variables
iwuhlu oluhlukaniswe ngokhefana lweziguquko ezizongezwa empendulweni.Serialization
- Sizihlanganisa kanjani izinto eziguquguqukayo esifuna ukuzibuyisela. Izinketho:Str
,Repr
,JSON
,Pickle
ΠΈDill
, okuzenzakalelayoStr
.
Esimweni sethu, sibeka impahla kuphela Code
, ukuze zonke ezinye izakhiwo zisebenzise amanani azo azenzakalelayo. Siyimise ngokufona process.GetAnnotation("Import pandas")
, okuthi ngesikhathi sokusebenza ibuyisele isichasiselo ngemva kokwenziwa kokushintshwa okuhlukile. Ekugcineni ikhodi import pandas as pd
izodluliselwa kuPython. GetAnnotation
kungaba usizo ekutholeni imibhalo ye-Python enemigqa eminingi, kodwa ayikho imingcele kule ndlela yokuthola ikhodi. Ungasetha impahla Code
nganoma iyiphi indlela evumelana nawe.
Ukuthola Okuguquguqukayo
Enye inselele ethokozisayo yokusebenzisa isc.py.msg.ExecutionRequest
- Correlation Matrix: Tabular
:
Ibala i-Correlation Matrix ohlangothini lwePython futhi ikhiphe okuguquguqukayo corrmat
buyela ku-InterSystems IRIS ngefomethi ye-JSON ngokusetha izakhiwo zesicelo:
Variables
:"corrmat"
Serialization
:"JSON"
Singabona imiphumela ku-Visual Trace:
Futhi uma sidinga leli nani ku-BP, lingatholakala kanje: callresponse.Variables.GetAt("corrmat")
.
Ukudluliswa kwedatha
Okulandelayo, ake sikhulume ngokudlulisa idatha kusuka ku-InterSystems IRIS kuya ku-Python, zonke izicelo zokudlulisa idatha zisebenzisa i-interface. isc.py.msg.DataRequest
, okunikeza izici ezilandelayo:
Variable
kuyinto eguquguqukayo yePython okubhalwe kuyo idatha.Type
- uhlobo oluguquguqukayo:dataframe
(i-pandas dataframe) nomalist
.Namespace
- indawo lapho sithola khona idatha. Isikhwama sepulasitikiisc.py
kufanele itholakale kule ndawo. Lokhu kungase kube indawo ngaphandle kokusekelwa komkhiqizo.
Ngokusekelwe kulesi sixhumanisi, amakilasi ama-4 ezicelo asetshenziswa:
isc.py.msg.QueryRequest
- setha impahlaQuery
ukuthumela umbuzo we-SQL.isc.py.msg.ClassRequest
- setha impahlaClass
ukudlulisa idatha yekilasi.isc.py.msg.TableRequest
- setha impahlaTable
ukudlulisa idatha yetafula.isc.py.msg.GlobalRequest
- setha impahlaGlobal
ukudlulisa idatha emhlabeni jikelele.
Enqubweni yokuhlola, bheka umsebenzi RAW
kuphi isc.py.msg.QueryRequest
kuboniswe ngesenzo.
Ukulondoloza/Ukubuyisela Ingqikithi YePython
Ekugcineni, singagcina umongo wePython ku-InterSystems IRIS, ukwenza lokhu, thumela isc.py.msg.SaveRequest
nezimpikiswano:
Mask
- Okuguquguqukayo kuphela okwanelisa imaski kugcinwa. Isekelwe*
ΠΈ?
. Isibonelo:"Data*, Figure?"
... Okuzenzakalelayo*
.MaxLength
- Ubude obuphelele bokuguquguquka okugciniwe. Uma ukwenziwa kwe-serial kokuhluka kukude, kuzozitshwa. Misa ku-0 ukuze uthole okuguquguqukayo kwanoma ibuphi ubude. Okuzenzakalelayo$$$MaxStringLength
.Name
- Igama lokuqukethwe (uyazikhethela).Description
- Incazelo yengqikithi (uyazikhethela).
Iyabuya Ens.StringResponse
Ρ Id
umongo olondoloziwe. Enqubweni yokuhlola, bheka umsebenzi Save Context
.
Isicelo esihlobene isc.py.msg.RestoreRequest
ilayisha umongo kusuka ku-InterSystems IRIS ku-Python:
ContextId
isihlonzi somongo.Clear
- cacisa ingqikithi ngaphambi kokubuyisela.
Incwadi kaJupyter
Lesi sandiso sithatha ukuthi izichasiselo ziqukethe ikhodi yePython futhi zisebenzisa amagama omsebenzi njengezihloko ezandulele. Manje kungenzeka ukuthuthukisa izinqubo zebhizinisi zePythonGateway kuJupyter Notebook. Nakhu okungenzeka:
- Dala izinqubo zebhizinisi ezintsha
- Susa izinqubo zebhizinisi
- Dala imisebenzi emisha
- Shintsha imisebenzi
- Susa imisebenzi
Lapha
I-Process Explorer
Umhleli wenqubo
setting
- Uzodinga i-InterSystems IRIS 2019.2+.
- Faka i-PythonGateway v0.8+ (idinga kuphela
isc.py.util.Jupyter
,isc.py.util.JupyterCheckpoints
ΠΈisc.py.ens.ProcessUtils
). - Buyekeza ikhodi ye-ObjectScript kusuka endaweni yokugcina.
- Gijima
do ##class(isc.py.util.Jupyter).Install()
bese ulandela imiyalelo.
okutholakele
I-MLToolkit iyisethi yamathuluzi ehlose ukuhlanganisa amamodeli nendawo yokuthengiselana ukuze amamodeli akhiwe asetshenziswe kalula ezinqubweni zebhizinisi lakho. I-Python Gateway iyingxenye ye-MLToolkit futhi ihlinzeka ngokuhlanganiswa nolimi lwePython, okukuvumela ukuthi uhlele noma yimaphi ama-algorithms wokufunda omshini adalwe ePython (indawo eyinhloko yoSosayensi Bedatha abaningi), sebenzisa imitapo yolwazi eminingi esenziwe ngomumo ukuze udale ngokushesha i-AI yokuhlaziya eguquguqukayo nerobhothi / Izixazululo ze-ML ku-InterSystems yesikhulumi se-IRIS.
izithenjwa
Isihloko esedlule I-Python Gateway Python Gateway Amasampula Convergent Analytics I-Python 3.6.7 64bit Imibhalo yePython nezifundo
I-MLToolkit
Iqembu labasebenzisi be-MLToolkit liyikhosombe eliyimfihlo le-GitHub elakhiwe njengengxenye yenhlangano ye-InterSystems yebhizinisi ye-GitHub. Iqondiswe kubasebenzisi bangaphandle abafakayo, abafundayo, noma asebesebenzisa izingxenye ze-MLToolkit, okuhlanganisa iPython Gateway. Iqembu linamacala amaningi asetshenzisiwe (anekhodi yomthombo kanye nedatha yokuhlola) emikhakheni yokumaketha, ukukhiqiza, imithi kanye nezinye izimboni eziningi. Ukuze ujoyine iqembu labasebenzisi be-ML Toolkit, sicela uthumele i-imeyili emfushane kuleli kheli elilandelayo:
- Igama lomsebenzisi le-GitHub
- Inhlangano (usebenza noma ufunda)
- Isikhundla (isikhundla sakho sangempela enhlanganweni yakho, "Umfundi" noma "Ozimele").
- izwe
Kulabo abafunde indatshana futhi abanentshisekelo ku-InterSystems IRIS njengenkundla yokuthuthukisa noma yokusingatha ubuhlakani bokwenziwa nezindlela zokufunda ngomshini, sikumema ukuthi uxoxe ngezimo ezingaba nentshisekelo kuzo ebhizinisini lakho. Sizozihlaziya kalula izidingo zebhizinisi lakho futhi sinqume ngokuhlanganyela uhlelo lokusebenza; Ikheli le-imeyili lokuxhumana leqembu lethu lochwepheshe be-AI/ML -
Source: www.habr.com