Python Gedhi muInterSystems IRIS

Ichi chinyorwa chiri pamusoro pePython Gateway, yakavhurika sosi nharaunda chirongwa cheInterSystems IRIS data platform. Ichi chirongwa chinokutendera kuti uronge chero muchina wekudzidza algorithms akagadzirwa muPython (iyo huru nharaunda yeakawanda maData Sainzi), shandisa akawanda akagadzirira-akagadzirwa maraibhurari kukurumidza kugadzira anogadzirisa, marobhoti analytical AI / ML mhinduro paInterSystems IRIS papuratifomu. Muchikamu chino, ini ndicharatidza nzira iyo InterSystems IRIS inogona kuronga maitiro muPython, kunyatso taura nzira mbiri-data, uye kugadzira hungwaru mabhizinesi maitiro.

Ronga

  1. Nhanganyaya.
  2. Zvishandiso.
  3. Kuisirwa
  4. API.
  5. Kudyidzana.
  6. Jupyter Notebook.
  7. Mhedziso.
  8. Links.
  9. MLToolkit.

Nhanganyaya

Python imhando yepamusoro-yepamusoro, general-chinangwa programming mutauro wakanangana nekuvandudza kugadzirwa kwemugadziri uye kuverenga kwekodhi. Mune ino nhevedzano yezvinyorwa, ini ndichakurukura nezvemikana yekushandisa Python paInterSystems IRIS papuratifomu, nechinangwa chikuru chechinyorwa ichi chiri kushandiswa kwePython semutauro wekugadzira nekumhanyisa mamodeli ekudzidza muchina.

Kudzidza kwemuchina (ML) ikirasi yemaitiro ehungwaru nzira, iyo hunhu husiri iyo yakananga mhinduro yedambudziko, asi kudzidza mukugadzirisa matambudziko mazhinji akafanana.

Machine kudzidza algorithms uye modhi ari kuwedzera kuwanda. Pane zvikonzero zvakawanda zveizvi, asi zvese zvinouya pasi pakuwanikwa, kuve nyore uye kuwana mhedzisiro inoshanda. Kubatanidza kana kunyange neural network yekuenzanisira tekinoroji nyowani?

Zvechokwadi kwete, asi mazuva ano hapana chikonzero chekunyora mazana ezviuru zvemitsara yekodhi kuti uite imwe muenzaniso, uye mari yekugadzira nekushandisa mienzaniso iri kuramba ichiderera.

Zvishandiso zviri kubuda - nepo isu tisina zvizere GUI-centric AI/ML zvishandiso, kufambira mberi kwatakaona nemamwe makirasi mazhinji ehurongwa hweruzivo, seBI (kubva pakunyora kodhi kusvika pakushandisa masisitimu uye GUI-centric inogadziriswa mhinduro) zvakare inocherechedzwa mumaturusi ekugadzira AI/ML. Isu takatopfuura nhanho yekunyora kodhi uye nhasi isu tinoshandisa masisitimu kuvaka uye kudzidzisa mamodheru.

Zvimwe zvigadziriso, senge kugona kugovera modhi yakadzidziswa apo mushandisi wekupedzisira anongo pedza kudzidzisa modhi pane yavo chaiyo data, zvakare zvinoita kuti zvive nyore kutanga nekudzidza muchina. Kufambira mberi uku kunoita kuti kudzidza muchina wekudzidza kuve nyore kune vese nyanzvi uye makambani mazhinji.

Kune rumwe rutivi, tiri kuunganidza data yakawanda uye yakawanda. Iine yakabatana data chikuva seInterSystems IRIS, ruzivo rwese urwu runogona kugadzirwa nekukasira uye kushandiswa sekuisa kumamodhi ekudzidza muchina.

Nekufamba kune gore, kutanga mapurojekiti eAI/ML kuri kuita nyore kupfuura nakare kose. Tinogona chete kushandisa zviwanikwa zvatinoda. Uyezve, nekuda kwekufananidza kunopihwa nemapuratifomu emakore, tinogona kuchengetedza nguva yakashandiswa.

Asi zvakadini nemiuyo? Apa ndipo panobva panyanya kuoma zvinhu. Kune akawanda maturusi ekuvaka mamodheru, ayo andichakurukura anotevera. Kuvaka muenzaniso wakanaka hakusi nyore, asi chii chinotevera? Kuita purofiti kubva pakushandisa bhizinesi modhi zvakare ibasa risiri diki. Mudzi wedambudziko ndiko kupatsanurwa kwekuongorora uye kutengeserana mabasa, uye data data. Apo patinodzidzisa muenzaniso, tinowanzozviita pane zvakaitika kare. Asi iyo nzvimbo yeiyo yakagadzirwa modhi iri mukufambiswa kwedata data. Chii chinobatsirei chemhando yepamusoro yehutsotsi yekuona kutengeserana kana tikaimhanyisa kamwe pazuva? Matsotsi ava vatoenda nemari. Isu tinofanirwa kudzidzisa iyo modhi pane yenhoroondo data, asi isu tinoda zvakare kuishandisa munguva chaiyo pane nyowani data inouya kuitira kuti mabhizinesi edu maitiro aite pane zvakafanotaurwa nemuenzaniso.

Iyo ML Toolkit seti yezvishandiso inovavarira kuita izvo chaizvo: kubatanidza mamodheru uye nharaunda yekutengeserana kuitira kuti mamodheru akavakirwa anogona kushandiswa zviri nyore zvakananga mubhizinesi rako maitiro. Python Gateway chikamu cheML Toolkit uye inopa kubatanidzwa nemutauro wePython (zvakafanana nekuti R Gateway, kuve chikamu cheML Toolkit inopa kubatanidzwa nemutauro weR).

Zvishandiso

Tisati taenderera mberi, ndinoda kutsanangura mashoma maturusi ePython nemaraibhurari atichazoshandisa gare gare.

zvigadzirwa

  • Python mutauro wakadudzirwa, wepamusoro-soro, wakazara-chinangwa. Mukana mukuru wemutauro iraibhurari yayo hombe yemasvomhu, ML uye AI raibhurari. Kufanana neObjectScript, mutauro wakatarisana nechinhu, asi zvese zvinotsanangurwa zvine simba kwete zvakamira. Uyewo zvinhu zvose chinhu. Zvinyorwa zvepashure zvinotora ruzivo rwakapfuura nemutauro. Kana iwe uchida kutanga kudzidza, ndinokurudzira kutanga zvinyorwa.
  • Kune edu anotevera maekisesaizi, set Python 3.6.7 64 bit.
  • IDE: Ndinoshandisa PyCharm, asi kazhinji ivo ΠΌΠ½ΠΎΠ³ΠΎ. Kana iwe ukashandisa Atelier, kune Eclipse plugin yePython vanogadzira. Kana iwe uri kushandisa VS Code, kune yekuwedzera yePython.
  • Notebook: Panzvimbo peIDE, unogona kunyora uye kugovera zvinyorwa zvako mumabhuku ekunyorera online. Iyo inonyanya kufarirwa kwavari ndeye jupyter.

Maraibhurari

Heino (isina-inoperera) runyorwa rwemaraibhurari ekudzidzira muchina:

  • numpy - pasuru yakakosha yekuverenga chaiko.
  • pandas - yakakwirira-yekuita data zvimiro uye maturusi ekuongorora data.
  • matplotlib - kugadzira magirafu.
  • seaborn -Kuona data kwakavakirwa pamatplotlib.
  • Sklearn - nzira dzekudzidza muchina.
  • XGBoost -muchina wekudzidza algorithms mukati meiyo gradient yekusimudzira nzira.
  • Gensim -NLP.
  • Keras - neural network.
  • tensor flow - ipuratifomu yekugadzira modhi yekudzidza muchina.
  • PyTorch ipuratifomu yekugadzira michina yekudzidza modhi, yakatarisana nePython.
  • Nyoka -PMML kubva kumhando dzakasiyana.

AI/ML matekinoroji anoita kuti bhizinesi riwedzere kushanda uye rinochinjika. Uyezve, nhasi matekinoroji aya ari kuita nyore kugadzira nekushandisa. Tanga kudzidza nezve AI/ML tekinoroji uye kuti vangabatsira sei sangano rako kukura.

Kuiswa

Pane nzira dzinoverengeka dzekuisa uye kushandisa Python Gateway:

  • OS
    • Windows
    • Linux
    • Mac
  • Docker
    • Shandisa mufananidzo kubva kuDockerHub
    • Gadzira chitarisiko chako wega

Pasinei neiyo yekuisa nzira, iwe unozoda iyo source code. Nzvimbo chete yekudhawunirodha kodhi ndeye inoburitsa peji. Iyo ine yakaedzwa yakagadzikana kuburitswa, ingotora yazvino. Parizvino iri 0.8, asi nekufamba kwenguva pachava nevatsva. Usatevedzera / kurodha repository, dhawunirodha yazvino kuburitswa.

OS

Kana iwe uri kuisa Python Gateway pane inoshanda sisitimu, saka kutanga (zvisinei neiyo inoshanda sisitimu) iwe unofanirwa kuisa Python. Nokuda kweizvi:

  1. Isa Python 3.6.7 64 bit. Inokurudzirwa kuisa Python mune iyo default dhairekitori.
  2. Isa iyo module dill: pip install dill.
  3. Dhawunirodha iyo ObjectScript kodhi (kureva. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) kune chero nzvimbo ine zvigadzirwa. Kana iwe uchida nzvimbo iripo yekutsigira zvigadzirwa, mhanya: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. Nzvimbo callout DLL/SO/DYLIB kufolder bin yako InterSystems IRIS muenzaniso. Iyo raibhurari faira inofanirwa kuwanikwa munzira yakadzoswa write ##class(isc.py.Callout).GetLib().

Windows

  1. Ita shuwa kuti nharaunda inoshanduka PYTHONHOME inonongedzera kuPython 3.6.7.
  2. Ita shuwa kuti system nharaunda inoshanduka iri PATH ine chinja PYTHONHOME (kana dhairekitori rainongedza kwariri).

Linux (Debian/Ubuntu)

  1. Tarisa kuti shanduko yemamiriro ekunze iri PATH rine /usr/lib ΠΈ /usr/lib/x86_64-linux-gnu. Shandisa faira /etc/environment kuseta magariro akasiyana.
  2. Kana pane kukanganisa undefined symbol: _Py_TrueStruct gadza marongero PythonLib. zvakare mu Readme pane Troubleshooting chikamu.

Mac

  1. Parizvino chete Python 3.6.7 inotsigirwa python.org. Tarisa shanduko PATH.

Kana iwe wakachinja nharaunda dzakasiyana, tangazve yako InterSystems chigadzirwa.

Docker

Kushandisa midziyo kune zvakawanda zvakanakira:

  • Kubatika
  • Kubudirira
  • Kuisa
  • Lightness
  • Kusachinja

Tarisa izvi nhevedzano yezvinyorwa kuti uwane rumwe ruzivo nezve kushandisa Docker neInterSystems zvigadzirwa.

Yese Python Gateway inovaka parizvino midziyo yakavakirwa 2019.4.

Yakagadzirira mufananidzo

Mhanya: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestkurodha uye kumhanya Python Gedhi neInterSystems IRIS Community Edition. Ndizvo zvose.

Gadzira chitarisiko chako wega

Kuvaka mufananidzo wedocker, mhanya mumudzi we repository: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Nekusagadzikana, mufananidzo unovakwa zvichienderana nemufananidzo store/intersystems/iris-community:2019.4.0.383.0, zvisinei iwe unogona kuchinja izvi nekuisa shanduko IMAGE.
Kuvaka kubva kuInterSystems IRIS, mhanya: `docker kuvaka --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:zvazvino ".

Mushure meizvi unogona kumhanya iyo docker mufananidzo:

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

Kana iwe uri kushandisa mufananidzo wakavakirwa paInterSystems IRIS Community Edition, unogona kusiya kiyi.

Comments

  • Test process isc.py.test.Process inochengetedza nhamba yemifananidzo kudhairekitori renguva pfupi. Ungangoda kushandura nzira iyi kuenda kune yakakwiridzwa dhairekitori. Kuti uite izvi, gadzirisa marongero WorkingDir kutsanangura dhairekitori rakaiswa.
  • Kuti uwane iyo terminal run: docker exec -it irispy sh.
  • Kupinda kuSystem Management Portal nekupinda SuperUser/SYS.
  • Kumisa mudziyo, mhanya: docker stop irispy && docker rm --force irispy.

Kuongorora kuiswa

Kana uchinge waisa Python Gateway, zvakakodzera kutarisa kuti iri kushanda. Ita kodhi iyi muInterSystems IRIS terminal:

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

Mhedzisiro inofanira kuva: HELLO -Python kusiyanisa kukosha x. Kana kudzoka mamiriro sc iko kukanganisa kana var isina chinhu, cheki Readme - Chikamu chekugadzirisa matambudziko.

API

Python Gateway yakaiswa uye waona kuti inoshanda. Yasvika nguva yekutanga kuishandisa!
Iyo huru interface kuPython ndeye isc.py.Main. Inopa mapoka anotevera enzira (dzose dzinodzoka %Status):

  • Kuitwa kweCode
  • Kuendeswa kwedata
  • Auxiliary

Kuitwa kweCode

Idzi nzira dzinokutendera iwe kuita zvekupokana Python kodhi.

SimpleString

SimpleString - iyi ndiyo nzira huru. Zvinotora 4 nharo dzesarudzo:

  • code - mutsara wekodhi yekuita. Line feed character: $c(10).
  • returnVariable - zita reshanduko yekudzoka.
  • serialization - sei kuita serialize returnVariable. 0 - tambo (default), 1 - repr.
  • result -ByRef inoreva kusiyanisa kwakanyorerwa kukosha returnVariable.

Pamusoro takaita:

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

Mumuenzaniso uyu, tinopa kuPython kusiyanisa x kukosha Hello uye kuda kudzosa kukosha kwePython kusiyanisa x kune ObjectScript musiyano var.

ExecuteCode

ExecuteCode inzira yakachengeteka uye isingadzoreki SimpleString.
Mitsetse muInterSystems IRIS papuratifomu inogumira kune 3 mavara, uye kana iwe uchida kuita chidimbu chakareba chekodhi, unofanirwa kushandisa tambo.
Mapoka maviri anogamuchirwa:

  • code - mutsara kana rwizi rwePython kodhi kuti iitwe.
  • variable - (sarudzo) inopa mhedzisiro yekuurayiwa code iyi Python yakasiyana.

Muenzaniso wekushandisa:

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

Mumuenzaniso uyu, tinowanza 2 ne3 uye tonyora mhedzisiro kune Python inoshanduka y.

Kuendeswa kwedata

Pfuura data kuenda uye kubva kuPython.

Python -> InterSystems IRIS

Pane nzira ina dzekuwana kukosha kwePython kusiyanisa muInterSystems IRIS, zvichienderana neserialization yaunoda:

  • String kune akareruka data mhando uye debugging.
  • Repr yekuchengetedza zvinhu zviri nyore uye kugadzirisa.
  • JSON kuitira nyore data manipulation paInterSystems IRIS side.
  • Pickle kuchengetedza zvinhu.

Idzi nzira dzinokutendera kuti utore zvinosiyana kubva kuPython setambo kana hova.

  • GetVariable(variable, serialization, .stream, useString) - kuwana serialization kusiyanisa variable Π² stream. kana useString iri 1 uye kuteedzera kunoiswa patambo, ipapo tambo inodzoserwa kwete rukova.
  • GetVariableJson(variable, .stream, useString) - tora JSON serialization yezvakasiyana.
  • GetVariablePickle(variable, .stream, useString, useDill) -tora Pickle (kana Dill) serialization yezvakasiyana.

Ngatiedzei kuwana shanduko yedu y.

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

InterSystems IRIS -> Python

Kurodha data kubva kuInterSystems IRIS muPython.

  • ExecuteQuery(query, variable, type, namespace) - inogadzira dataset (pandas dataframe kana list) kubva kumubvunzo wesql uye woiisa kune Python inoshanduka variable. Plastic bag isc.py inofanira kuwanikwa munzvimbo namespace - chikumbiro chichaitwa ipapo.
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - inotakura data yepasirese global kubva ku subscript start up to end muPython semhando yakasiyana type: list, kana panda dataframe. Tsananguro yenharo dzesarudzo mask uye labels inowanikwa mukirasi zvinyorwa uye repository Data Transfer zvinyorwa.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - inotakura data yekirasi class kubva id start up to end muPython semhando yakasiyana type: list, kana panda dataframe. properties - rondedzero (yakaparadzaniswa necomma) yekirasi zvivakwa zvinoda kutakurwa mu data set. Masiki anotsigirwa * ΠΈ ?. Default - * (zvese zvivakwa). Property %%CLASSNAME kufuratirwa.
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - inoremedza tafura data table kubva id start up to end muPython.

ExecuteQuery - yepasirese (chero mubvunzo wakarurama weSQL uchapfuudzwa kuPython). Zvisinei, ExecuteGlobal nemaputi ayo ExecuteClass ΠΈ ExecuteTable shanda nehuwandu hwezvirambidzo. Vanokurumidza kukurumidza (3-5 nguva nekukurumidza kupfuura mutyairi weODBC uye 20 nguva nekukurumidza ExecuteQuery) Mamwe mashoko pa Data Transfer zvinyorwa.
Idzi nzira dzese dzinotsigira kuendesa data kubva kune chero nzvimbo. Plastic bag isc.py inofanira kuwanikwa munzvimbo inotarirwa.

ExecuteQuery

ExecuteQuery(request, variable, type, namespace) -Kuendesa mhedzisiro yechero chaiyo SQL mubvunzo kuPython. Iyi ndiyo nzira inononoka yekufambisa data. Shandisa kana ExecuteGlobal uye zviputi zvayo hazviwanikwe.

Nharo:

  • query - sql mubvunzo.
  • variable -Zita rePython inoshanduka mune iyo data yakanyorwa.
  • type - list kana Pandas dataframe.
  • namespace - nzvimbo iyo chikumbiro chichaitwa.

ExecuteGlobal

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - kupfuura pasi rose muPython.

Nharo:

  • global - zita renyika pasina ^
  • variable -Zita rePython inoshanduka mune iyo data yakanyorwa.
  • type - list kana Pandas dataframe.
  • start - chinyorwa chekutanga chepasi rose. Zvakakodzera %Integer.
  • end - chinyorwa chekupedzisira chepasi rose. Zvakakodzera %Integer.
  • mask - yepasi rose kukosha mask. Iyo maski inogona kupfupika pane iyo nhamba yeminda mupasi rose (mumamiriro ezvinhu aya minda iri kumagumo ichasvetuka). Maitiro ekugadzira mask:
    • + pfuura kukosha sezvazviri.
    • - skip value.
    • b - Boolean mhando (0 - False, zvimwe zvese - True).
    • d - Date (kubva ku $horolog, paWindows kubva 1970, paLinux kubva 1900).
    • t - Nguva ($ horolog, masekondi mushure mepakati pehusiku).
    • m -Timetamp (fomati tambo YEAR-MWEDZI-ZUVA HOUR:MINUTE:SECOND).
  • labels β€” %Mazita emakoramu. Chinhu chekutanga izita rekunyorera.
  • namespace - nzvimbo iyo chikumbiro chichaitwa.

ExecuteClass

Pedzisa pamusoro ExecuteGlobal. Kubva pane tsanangudzo yekirasi, inogadzirira kufona ExecuteGlobal uye anomudana.

ExecuteClass(class, variable, type, start, end, properties, namespace) -kupfuura kirasi data muPython.

Nharo:

  • class - zita rekirasi
  • variable -Zita rePython inoshanduka mune iyo data yakanyorwa.
  • type - list kana Pandas dataframe.
  • start - kutanga ID.
  • end - yekupedzisira Id
  • properties - rondedzero (yakaparadzaniswa necomma) yekirasi zvivakwa zvinoda kutakurwa mu data set. Masiki anotsigirwa * ΠΈ ?. Default - * (zvese zvivakwa). Property %%CLASSNAME kufuratirwa.
  • namespace - nzvimbo iyo chikumbiro chichaitwa.

Zvese zvivakwa zvinopfuudzwa sezvazviri kunze kwemhando zvivakwa %Date, %Time, %Boolean ΠΈ %TimeStamp - vanoshandurwa kuita makirasi ePython anoenderana.

ExecuteTable

Pedzisa pamusoro ExecuteClass. Inoshandura zita retafura mukirasi zita uye mafoni ExecuteClass. Siginicha:

ExecuteTable(table, variable, type, start, end, properties, namespace) - kupfuudza tafura data kuPython.

Nharo:

  • table - zita retafura.
    Dzimwe nharo dzese dzinopfuudzwa sezvazviri ExecuteClass.

Zvinyorwa

  • ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable shandai nekukurumidza zvakaenzana.
  • ExecuteGlobal 20 nguva nekukurumidza kupfuura ExecuteQuery pamaseti makuru edata (nguva yekufambisa> masekondi 0.01).
  • ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable shanda pane zvepasirese neichi chimiro: ^global(key) = $lb(prop1, prop2, ..., propN) apo key - nhamba yakakwana.
  • nokuti ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable inotsigirwa huwandu hwezvikoshi %Date zvinoenderana nemhando mktime uye zvinoenderana ne OS (mahwindo: 1970-01-01, Linux 1900-01-01, mac pumpkin) Shandisa %TimeStampkuendesa data kunze kweiyo renji kana kushandisa pandas dataframe nekuti iyi rondedzero-chete ganhuriro.
  • nokuti ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable nharo dzese kunze kwenzvimbo yedata (yepasi rose, kirasi kana tafura) uye shanduko ndeyekusarudza.

mienzaniso

Test class isc.py.test.Munhu ine nzira inoratidza sarudzo dzese dzekufambisa data:

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)

Dana nzira do ##class(isc.py.test.Person).Test() kuona kuti nzira dzese dzekufambisa data dzinoshanda sei.

Mubatsiri Nzira

  • GetVariableInfo(variable, serialization, .defined, .type, .length) -wana ruzivo nezve shanduko: ingave inotsanangurwa, kirasi yayo uye kureba kweserialization.
  • GetVariableDefined(variable, .defined) - kana shanduko ichitsanangurwa.
  • GetVariableType(variable, .type) -wana kirasi yezvakasiyana.
  • GetStatus() - tora uye bvisa yekupedzisira kusarudzika padivi rePython.
  • GetModuleInfo(module, .imported, .alias) - tora module inosiyana uye mamiriro ekunze.
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) -wana ruzivo nezve basa racho.

Kudyidzana

Iwe wakadzidza kufonera Python Gateway kubva kune terminal, ikozvino ngatitange kuishandisa mukugadzira. Hwaro hwekudyidzana nePython mune iyi modhi ndeye isc.py.ens.Operation. Inotibvumira:

  • Tora kodhi muPython
  • Sevha / dzosa Python mamiriro
  • Rodha uye gamuchira data kubva kuPython

Chaizvoizvo, kushanda kwePython ndeye kuputira pamusoro isc.py.Main. Operation isc.py.ens.Operation inopa kugona kupindirana nePython maitiro kubva kuInterSystems IRIS zvigadzirwa. Mibvunzo mishanu inotsigirwa:

  • isc.py.msg.ExecutionRequest kuita Python kodhi. Returns isc.py.msg.ExecutionResponse nemhedzisiro yekuuraya uye kukosha kweakakumbirwa akasiyana.
  • isc.py.msg.StreamExecutionRequest kuita Python kodhi. Returns isc.py.msg.StreamExecutionResponse mhedzisiro yekuuraya uye kukosha kweakakumbirwa akasiyana. Analogue isc.py.msg.ExecutionRequest, asi anogamuchira uye anodzorera hova panzvimbo petambo.
  • isc.py.msg.QueryRequest kuendesa mhedzisiro yekuita SQL query. Returns Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest yekupfuura data yepasirese/kirasi/tafura. Returns Ens.Response.
  • isc.py.msg.SaveRequest kuchengetedza Python mamiriro. Returns Ens.StringResponse ine chinyorwa ID.
  • isc.py.msg.RestoreRequest kudzorera mamiriro ePython.

    Mukuwedzera, isc.py.ens.Operation ine marongero maviri:

    • Initializer - kusarudza kirasi inoshandisa iyo interface isc.py.init.Abstract. Inogona kushandiswa kurodha mabasa, modules, makirasi, nezvimwe. Inoitwa kamwe chete kana maitiro atanga.
    • PythonLib - (Linux chete) kana ukaona zvikanganiso paunenge uchitakura, isa kukosha kwayo libpython3.6m.so kana kunyange munzira yakazara yekuraibhurari yePython.

Kusikwa kwemaitiro ebhizinesi

Kune makirasi maviri anowanikwa anofambisa kusimudzira kwebhizinesi maitiro:

  • isc.py.ens.ProcessUtils inokutendera kuti utore zvirevo kubva muzviitiko zvine shanduko yakasiyana.
  • isc.py.util.BPEmulator inoita kuti zvive nyore kuyedza maitiro ebhizinesi nePython. Inogona kuita bhizinesi maitiro (Python zvikamu) mune yazvino maitiro.

Variable Substitution

Maitiro ese ebhizinesi akagarwa nhaka kubva isc.py.ens.ProcessUtils, anogona kushandisa nzira GetAnnotation(name) kuti uwane kukosha kwechiitiko nemazita ayo. Chiitiko chetsanangudzo chinogona kuve nemhando dzinozoverengerwa parutivi rweInterSystems IRIS isati yapfuudzwa kuPython. Heino syntax yekutsiva inochinja:

  • ${class:method:arg1:...:argN} - nzira yekufona
  • #{expr} - ita kodhi mumutauro weObjectScript.

Muenzaniso unowanikwa mukuedza bhizinesi maitiro isc.py.test.Process, somuenzaniso, mubasa Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Mumuenzaniso uyu:

  • #{process.WorkDirectory} inodzorera WorkDirectory pfuma yechinhu process, inova muenzaniso wekirasi isc.py.test.Process avo. ikozvino bhizinesi maitiro.
  • ${%PopulateUtils:Integer:1:100} inodana nzira Integer kirasi %PopulateUtils, vachipfuura nharo 1 ΠΈ 100, kudzosa nhamba isina kurongeka muchikamu 1...100.

Edzai bhizinesi maitiro

Zvigadzirwa zvekuedza uye maitiro ebhizinesi ekuyedza anowanikwa nekusarudzika sechikamu chePython Gateway. Kuti vashandise:

  1. Mune OS terminal, mhanya: pip install pandas matplotlib seaborn.
  2. MuInterSystems IRIS terminal, mhanya: do ##class(isc.py.test.CannibalizationData).Import() kuzadza bvunzo data.
  3. Tanga zvigadzirwa isc.py.test.Production.
  4. Tumira rudzi rwekukumbira Ens.Request Π² isc.py.test.Process.

Ngationei kuti zvese zvinoshanda sei pamwe chete. Vhura isc.py.test.Process muBPL mupepeti:

Python Gedhi muInterSystems IRIS

Kuitwa kweCode

Dambudziko rakakosha kuita Python kodhi:

Python Gedhi muInterSystems IRIS

Mubvunzo wakashandiswa isc.py.msg.ExecutionRequest, heino maitiro ayo:

  • Code - Python kodhi.
  • SeparateLines - kana kupatsanura kodhi kuita mitsetse yekuitwa. $c(10) (n) inoshandiswa kupatsanura tambo. Ndokumbira utarise kuti HAZVISIRI kukurudzirwa kugadzirisa meseji yese kamwechete, basa iri rinongoitirwa kugadzirisa def uye zvakafanana multiline kutaura. Default 0.
  • Variables - rondedzero yakapatsanurwa nemakoma yezvinyorwa zvichawedzerwa kune mhinduro.
  • Serialization -Maitiro ekuita serialize mavheti atinoda kudzoka. Sarudzo: Str, Repr, JSON, Pickle ΠΈ Dill, default Str.

Muchiitiko chedu, isu tinongoisa pfuma chete Code, saka zvimwe zvese zvinoshandisa zvimiro zvekutanga. Takaisa nekufona process.GetAnnotation("Import pandas"), iyo panguva yekumhanya inodzosa tsinhiro mushure mekuchinja kwekuchinja kwaitwa. Mushure mezvose, iyo kodhi import pandas as pd ichapfuudzwa kuPython. GetAnnotation inogona kubatsira pakuwana akawanda-line Python scripts, asi hapana zvirambidzo pane iyi nzira yekuwana kodhi. Unogona kuseta pfuma Code nenzira ipi zvayo yakakunakira.

Kuwana Variables

Rimwe dambudziko rinonakidza kushandisa isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Python Gedhi muInterSystems IRIS

Iyo inoverengera iyo Correlation Matrix padivi rePython uye inobvisa iyo shanduko corrmat dzokera kuInterSystems IRIS muJSON fomati nekuisa zvivakwa zvekukumbira:

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

Isu tinogona kuona mhedzisiro muVisual Trace:

Python Gedhi muInterSystems IRIS

Uye kana tichida kukosha uku muBP, tinogona kuiwana seizvi: callresponse.Variables.GetAt("corrmat").

Kuendeswa kwedata

Tevere, ngatitaure nezve kuendesa data kubva kuInterSystems IRIS kuenda kuPython; zvese zvikumbiro zvekufambisa data shandisa iyo interface. isc.py.msg.DataRequestiyo inopa zvinotevera zvivakwa:

  • Variable - Python inosiyana iyo inonyorwa data.
  • Type - yakasiyana mhando: dataframe (pandas dataframe) kana list.
  • Namespace - nzvimbo yatinowana data kubva. Plastic bag isc.py inofanira kuwanikwa munzvimbo ino. Iyi inogona kunge iri nzvimbo isina rubatsiro rwechigadzirwa.

Kubva pane iyi interface, 4 makirasi ezvikumbiro anoitwa:

  • isc.py.msg.QueryRequest - gadza pfuma Query kutumira mubvunzo weSQL.
  • isc.py.msg.ClassRequest - gadza pfuma Class kupfuudza data yekirasi.
  • isc.py.msg.TableRequest - set pfuma Table kuendesa tafura data.
  • isc.py.msg.GlobalRequest - set pfuma Global yekufambisa data kwepasi rose.

Mukuita bvunzo, tarisa chiitiko RAWkupi isc.py.msg.QueryRequest kuratidzwa mukuita.

Python Gedhi muInterSystems IRIS

Kuchengetedza / Kudzoreredza Python Context

Pakupedzisira, tinogona kuchengetedza mamiriro ePython muInterSystems IRIS, kuti tiite izvi tichazotumira isc.py.msg.SaveRequest nemakakatanwa:

  • Mask - Mhedzisiro chete inoenderana nemask inochengetwa. Inotsigirwa * ΠΈ ?. Muenzaniso: "Data*, Figure?". Default *.
  • MaxLength - Hurefu hwehurefu hwekuchinja kwakachengetwa. Kana iyo serialization yechinhu chakareba, inozoregeredzwa. Seta kuna 0 kuti uwane zvinoshanduka zvehurefu hupi zvahwo. Default $$$MaxStringLength.
  • Name - Zita remukati (sarudzo).
  • Description - Tsanangudzo yemamiriro ezvinhu (sarudzo).

Anodzoka Ens.StringResponse с Id zvakachengetwa. Mukuita bvunzo, tarisa chiitiko Save Context.

Chikumbiro chakabatana isc.py.msg.RestoreRequest inotakura mamiriro kubva kuInterSystems IRIS muPython:

  • ContextId - chiziviso chechirevo.
  • Clear - jekesa mamiriro ezvinhu asati adzorera.

Jupyter Notebook

Jupyter Notebook ndeye yakavhurika sosi yewebhu application iyo inokutendera iwe kugadzira uye kushambadza zvinyorwa zvine kodhi, zvinoonekwa, uye zvinyorwa. Python Gateway inokutendera kuti utarise uye ugadzirise maitiro eBPL nenzira yeJupyter Notebook. Ndokumbira utarise kuti yakajairika Python 3 executor iri kushandiswa parizvino.

Kuwedzerwa uku kunofungidzira kuti zvirevo zvine Python kodhi uye inoshandisa mazita echiitiko semazita apfuura. Izvozvi zvinogoneka kugadzira PythonGateway bhizinesi maitiro muJupyter Notebook. Hezvino zvinogoneka:

  • Gadzira maitiro matsva ebhizinesi
  • Delete business process
  • Gadzira mabasa matsva
  • Shandura mabasa
  • Dzima mabasa

pano demo vhidhiyo. Uye mamwe mascreenshots:

Process Explorer

Python Gedhi muInterSystems IRIS

Process editor

Python Gedhi muInterSystems IRIS

Kuiswa

  1. Iwe unozoda InterSystems IRIS 2019.2+.
  2. Isa PythonGateway v0.8+ (inongodiwa chete isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints ΠΈ isc.py.ens.ProcessUtils).
  3. Gadziridza iyo ObjectScript kodhi kubva pane repository.
  4. Kuuraya do ##class(isc.py.util.Jupyter).Install() uye tevera zvirevo.

Zvinyorwa.

zvakawanikwa

MLToolkit seti yezvishandiso zvine chinangwa chekubatanidza mamodheru uye nharaunda yekutengeserana kuitira kuti mamodheru akavakirwa anogona kushandiswa nyore nyore mubhizinesi rako maitiro. Python Gateway chikamu cheMLToolkit uye inopa kubatanidzwa nemutauro wePython, ichikubvumidza kuti uronge chero muchina wekudzidza algorithms akagadzirwa muPython (iyo nharaunda huru yevazhinji Data Sayenzi), shandisa akawanda akagadzirira-akagadzirwa maraibhurari kukurumidza kugadzira inochinja, robotic analytical AI / ML mhinduro paInterSystems papuratifomu IRIS.

nezvakanyorwa

MLToolkit

Boka revashandisi reMLToolkit inzvimbo yakazvimiririra yeGitHub yakagadzirwa sechikamu cheInterSystems corporate GitHub sangano. Yakagadzirirwa vashandisi vekunze vanoisa, vanodzidza, kana vari kutoshandisa MLToolkit zvikamu, kusanganisira iyo Python Gateway. Iri boka rine akati wandei akaiswa makesi (ane sosi kodhi uye bvunzo data) muminda yekushambadzira, kugadzira, mishonga uye mamwe akawanda maindasitiri. Kujoinha iyo ML Toolkit User Group, ndapota tumira email pfupi kune inotevera kero: [email inodzivirirwa] uye sanganisira ruzivo runotevera mutsamba yako:

  • GitHub username
  • Sangano (unoshanda kana kudzidza)
  • Position (chinzvimbo chako chaicho musangano rako, angave "Mudzidzi" kana "Akazvimirira").
  • nyika

Kune avo vakaverenga chinyorwa uye vanofarira kugona kweInterSystems IRIS sepuratifomu yekugadzira kana kuitisa hungwaru hwekugadzira uye mainjini ekudzidza muchina, tinokukoka iwe kuti ukurukure zvinogona kuitika zvinofadza kune bhizinesi rako. Isu tichafara kuongorora zvinodiwa nekambani yako uye pamwe chete kuona chirongwa chekuita; Bata email kero yeAI/ML yedu nyanzvi timu - [email inodzivirirwa].

Source: www.habr.com

Voeg