Isango lePython ku-InterSystems IRIS

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

  1. Isingeniso.
  2. Amathuluzi.
  3. Ukufaka
  4. I-API.
  5. Ukusebenzisana.
  6. I-Jupyter Notebook.
  7. Iziphetho.
  8. Izixhumanisi.
  9. 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 ikhasi lokukhishwa. Iqukethe ukukhishwa okuzinzile okuhloliwe, vele ubambe okwakamuva. Okwamanje ingu-0.8, kodwa ngokuhamba kwesikhathi kuzoba nezintsha. Ungaqinisi/ulande inqolobane, landa ukukhishwa kwakamuva.

I-ОБ

Uma ufaka i-Python Gateway ohlelweni lokusebenza, khona-ke okokuqala (kungakhathaliseki ukuthi uhlelo lokusebenza) uzodinga ukufaka i-Python. Kwalokhu:

  1. Faka iPython 3.6.7 64 bit. Kunconywa ukufaka i-Python kumkhombandlela ozenzakalelayo.
  2. Faka imojuli dill: pip install dill.
  3. 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).
  4. Indawo I-callout DLL/SO/DYLIB kufolda bin isibonelo sakho se-InterSystems IRIS. Ifayela lomtapo wolwazi kufanele litholakale endleleni ebuyiswa ngayo write ##class(isc.py.Callout).GetLib().

Windows

  1. Qiniseka ukuthi imvelo variable PYTHONHOME ukhomba kuPython 3.6.7.
  2. Qinisekisa ukuthi i-variable yemvelo yesistimu injalo PATH iqukethe okuguquguqukayo PYTHONHOME (noma uhla lwemibhalo olukhomba kulo).

Linux (Debian/Ubuntu)

  1. Hlola ukuthi ngabe imvelo iguquguqukayo PATH iqukethe /usr/lib ΠΈ /usr/lib/x86_64-linux-gnu. Sebenzisa Ifayela /etc/environment ukusetha okuguquguqukayo kwemvelo.
  2. Uma kwenzeka amaphutha undefined symbol: _Py_TrueStruct setha isilungiselelo PythonLib. futhi ku Readme kukhona isigaba sokuxazulula inkinga.

Mac

  1. Okwamanje yi-python 3.6.7 kuphela esekelwe kuyo IPython.org. Hlola Okuguquguqukayo PATH.

Uma ushintshe okuguquguqukayo kwendawo, qala kabusha umkhiqizo wakho we-InterSystems.

Docker

Ukusebenzisa iziqukathi kunezinzuzo eziningi:

  • Ukuphatheka
  • Ukuphumelela
  • I-Insulation
  • ubulula
  • Ukungaguquki

Bheka lokhu uchungechunge lwezihloko ukuthola eminye imininingwane ngokusebenzisa i-Docker ngemikhiqizo ye-InterSystems.

Zonke izakhiwo zePython Gateway njengamanje zisekelwe esitsheni. 2019.4.

Isithombe esiqediwe

Gijima: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestukulanda 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 isilungiselelo WorkingDir 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 I-Readmeβ€”Isigaba sokuxazulula izinkinga.

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 serial returnVariable. 0 - iyunithi yezinhlamvu (okuzenzakalelayo), 1 - repr.
  • result - Ireferensi ye-ByRef yokuguquguquka lapho kubhalwa khona inani returnVariable.

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 wokubulawa code 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) - thola serialization eguquguqukayo variable Π² stream. Uma useString 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 (pandas dataframe noma list) kusuka kumbuzo we-sql bese usetha ku-python variable variable. Isikhwama sepulasitiki isc.py kufanele itholakale endaweni namespace - isicelo sizokwenziwa lapho.
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - ilayisha idatha yomhlaba wonke global kusuka kokubhaliselwe start ukuze end kuPython njengohlobo oluguquguqukayo type: list, noma ama-panda dataframe. Incazelo yezimpikiswano ozikhethela zona mask futhi labels etholakala kumibhalo yekilasi kanye nenqolobane Amadokhumenti okudlulisa idatha.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - ilayisha idatha yekilasi class kusuka ku-id start ukuze end kuPython njengohlobo oluguquguqukayo type: list, noma ama-panda dataframe. 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 yetafula table kusuka ku-id start ukuze end 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 Amadokhumenti okudlulisa idatha.
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-panda dataframe.
  • 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-panda dataframe.
  • 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 lekilasi
  • variable - igama lokuguquguquka kwePython lapho idatha ibhalwe khona.
  • type - list noma ama-panda dataframe.
  • start - ukuqala Id.
  • end - I-Id yokugcina
  • properties β€” 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 kunaleyo ExecuteQuery kumadathasethi amakhulu (isikhathi sokudlulisa > isekhondi elingu-0.01).
  • ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable sebenza kuma-globals ngalesi sakhiwo: ^global(key) = $lb(prop1, prop2, ..., propN) kuphi key iyinombolo ephelele.
  • Ukuze ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable ububanzi benani elisekelwe %Date ihambisana nobubanzi mktime futhi kuncike ku-OSwindows: 1970-01-01, Linux 1900-01-01, mac). Sebenzisa %TimeStampukudlulisa 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 isc.py.test.Person iqukethe indlela ebonisa zonke izinketho zokudlulisa idatha:

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. izimbuyiselo isc.py.msg.ExecutionResponse ngomphumela wokwenza kanye namanani okuguquguqukayo okuceliwe.
  • isc.py.msg.StreamExecutionRequest ukwenza ikhodi yePython. izimbuyiselo isc.py.msg.StreamExecutionResponse umphumela wokwenziwa kanye namanani okuguquguqukayo okuceliwe. I-Analog isc.py.msg.ExecutionRequest, kodwa yamukela futhi ibuyisele ukusakaza esikhundleni seyunithi yezinhlamvu.
  • isc.py.msg.QueryRequest ukudlulisa umphumela wokwenza umbuzo we-SQL. izimbuyiselo Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest ukudlulisa idatha yomhlaba jikelele/yekilasi/yethebula. izimbuyiselo Ens.Response.
  • isc.py.msg.SaveRequest ukusindisa umongo wePython. izimbuyiselo Ens.StringResponse nge-ID yomongo.
  • isc.py.msg.RestoreRequest ukubuyisela umongo wePython.

    Ngaphezu kwalokho, isc.py.ens.Operation inezilungiselelo ezimbili:

    • Initializer - ukukhetha ikilasi esebenzisa isixhumi esibonakalayo isc.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 layo libpython3.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 yento process, okuyisibonelo sekilasi isc.py.test.Process labo. inqubo yebhizinisi yamanje.
  • ${%PopulateUtils:Integer:1:100} ibiza indlela Integer class %PopulateUtils, edlulisa izimpikiswano 1 ΠΈ 100, ibuyisela inombolo engahleliwe kububanzi 1...100.

Hlola inqubo yebhizinisi

Ukukhiqizwa kokuhlola kanye nenqubo yebhizinisi yokuhlola kutholakala ngokuzenzakalelayo njengengxenye ye-Python Gateway. Ukuzisebenzisa:

  1. Ku-terminal ye-OS qalisa: pip install pandas matplotlib seaborn.
  2. Kutheminali ye-InterSystems IRIS, sebenzisa: do ##class(isc.py.test.CannibalizationData).Import() ukugcwalisa idatha yokuhlola.
  3. Yethula imikhiqizo isc.py.test.Production.
  4. Thumela uhlobo lwesicelo Ens.Request Π² isc.py.test.Process.

Ake sibone ukuthi konke kusebenza kanjani ndawonye. vula isc.py.test.Process kumhleli we-BPL:

Isango lePython ku-InterSystems IRIS

Ukwenziwa kwekhodi

Ucingo olubaluleke kakhulu ukubulawa kwekhodi yePython:

Isango lePython ku-InterSystems IRIS

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 kuphela def kanye nezinkulumo zemigqa eminingi efanayo. Okuzenzakalelayo 0.
  • Variables iwuhlu oluhlukaniswe ngokhefana lweziguquko ezizongezwa empendulweni.
  • Serialization - Sizihlanganisa kanjani izinto eziguquguqukayo esifuna ukuzibuyisela. Izinketho: Str, Repr, JSON, Pickle ΠΈ Dill, okuzenzakalelayo Str.

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:

Isango lePython ku-InterSystems IRIS

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:

Isango lePython ku-InterSystems IRIS

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) noma list.
  • Namespace - indawo lapho sithola khona idatha. Isikhwama sepulasitiki isc.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 impahla Query ukuthumela umbuzo we-SQL.
  • isc.py.msg.ClassRequest - setha impahla Class ukudlulisa idatha yekilasi.
  • isc.py.msg.TableRequest - setha impahla Table ukudlulisa idatha yetafula.
  • isc.py.msg.GlobalRequest - setha impahla Global ukudlulisa idatha emhlabeni jikelele.

Enqubweni yokuhlola, bheka umsebenzi RAWkuphi isc.py.msg.QueryRequest kuboniswe ngesenzo.

Isango lePython ku-InterSystems IRIS

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

Incwadi kaJupyter uhlelo lokusebenza lwewebhu lomthombo ovulekile olukuvumela ukuthi udale futhi ushicilele amabhukumaka aqukethe ikhodi, okubonwayo, nombhalo. I-Python Gateway ikuvumela ukuthi ubuke futhi uhlele izinqubo ze-BPL njenge-Jupyter Notebook. Qaphela ukuthi umenzi ojwayelekile wePython 3 okwamanje uyasetshenziswa.

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 ividiyo yedemo. Futhi ezinye izithombe-skrini:

I-Process Explorer

Isango lePython ku-InterSystems IRIS

Umhleli wenqubo

Isango lePython ku-InterSystems IRIS

setting

  1. Uzodinga i-InterSystems IRIS 2019.2+.
  2. Faka i-PythonGateway v0.8+ (idinga kuphela isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints ΠΈ isc.py.ens.ProcessUtils).
  3. Buyekeza ikhodi ye-ObjectScript kusuka endaweni yokugcina.
  4. Gijima do ##class(isc.py.util.Jupyter).Install() bese ulandela imiyalelo.

Imibhalo.

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

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: [i-imeyili ivikelwe] futhi ufake ulwazi olulandelayo encwadini yakho:

  • 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 - [i-imeyili ivikelwe].

Source: www.habr.com

Engeza amazwana