Python Gateway ao amin'ny InterSystems IRIS

Ity lahatsoratra ity dia momba ny Python Gateway, tetikasa vondrom-piarahamonina loharano misokatra ho an'ny sehatra data InterSystems IRIS. Ity tetikasa ity dia ahafahanao mandrindra ny algorithm fianarana milina noforonina amin'ny Python (ny tontolo tena lehibe ho an'ny Data Scientists maro), mampiasa tranomboky efa vita maro mba hamoronana haingana vahaolana AI / ML analytical robotika amin'ny sehatra InterSystems IRIS. Ato amin'ity lahatsoratra ity, hasehoko anao ny fomba ahafahan'ny InterSystems IRIS mandrindra ny fizotry ny Python, manatanteraka famindrana angon-drakitra mahomby amin'ny lafiny roa, ary mamorona dingana ara-barotra manan-tsaina.

drafitra

  1. Fampidirana.
  2. Fitaovana.
  3. Fametrahana.
  4. API.
  5. Interoperability.
  6. Jupyter Notebook.
  7. Fanatsoahan-kevitra.
  8. Rohy.
  9. M.L.Toolkit.

fampidirana

Python dia fiteny fandaharana avo lenta sy tanjona ankapobeny mifantoka amin'ny fanatsarana ny vokatra azo avy amin'ny mpamorona sy ny famakian-kaody. Amin'ity andian-dahatsoratra ity dia hiresaka momba ny mety hampiasana ny fiteny Python amin'ny sehatra InterSystems IRIS aho, raha ny tena ifantohan'ity lahatsoratra ity dia ny fampiasana ny Python ho fiteny amin'ny famoronana sy fampiharana ny maodely fianarana milina.

Ny fianarana milina (ML) dia kilasy amin'ny fomba faharanitan-tsaina artifisialy, ny toetra mampiavaka azy dia tsy ny vahaolana mivantana amin'ny olana iray, fa ny fianarana amin'ny famahana olana maro mitovy.

Mihamitombo hatrany ny algorithm sy ny modely fianarana milina. Maro ny antony mahatonga izany, saingy miankina amin'ny fahafaha-miditra, ny fahatsorana ary ny fahazoana vokatra azo ampiharina. Teknolojia vaovao ve ny clustering na tambajotra neural mihitsy aza?

Mazava ho azy fa tsy izany, fa amin'izao fotoana izao dia tsy ilaina ny manoratra andalana an'hetsiny amin'ny kaody mba hampandehanana ny maodely iray, ary ny vola lany amin'ny famoronana sy ny fampiasana modely dia miha-kely hatrany.

Mivoatra ny fitaovana - na dia tsy manana fitaovana AI/ML miompana amin'ny GUI tanteraka aza izahay, dia hita ihany koa ny fandrosoana hitanay miaraka amin'ireo rafitra fampahalalam-baovao maro hafa toa ny BI (avy amin'ny fanoratana kaody ka hatramin'ny fampiasana frameworks sy vahaolana azo fehezina miompana amin'ny GUI) , amin'ny fitaovana famoronana AI/ML. Efa nandalo ny dingan'ny fanoratana kaody izahay ary ankehitriny dia mampiasa rafitra ho an'ny fananganana sy fanofanana modely.

Ny fanatsarana hafa, toy ny fahafahana manaparitaka maodely efa voaofana mialoha izay tsy maintsy vitan'ny mpampiasa farany fotsiny ny fanofanana ny maodely amin'ny angon-drakitr'izy ireo manokana, dia manamora ihany koa ny manomboka mampihatra ny fianarana milina. Ireo fandrosoana ireo dia manamora kokoa ny fianarana fianarana milina, na ho an'ny matihanina na ho an'ny orinasa amin'ny ankapobeny.

Amin'ny lafiny iray, manangona angona bebe kokoa izahay. Miaraka amin'ny sehatra data mitambatra toy ny InterSystems IRIS, ireo fampahalalana rehetra ireo dia azo omanina avy hatrany ary ampiasaina ho fampidirana ho an'ny maodely fianarana milina.

Miaraka amin'ny fifindrana mankany amin'ny rahona, ny fandefasana tetikasa AI/ML dia mora kokoa noho ny hatramin'izay. Ny loharanon-karena ilaintsika ihany no azontsika ampiasaina. Ankoatr'izay, noho ny fampitoviana atolotry ny sehatra rahona, dia afaka mamonjy fotoana lany isika.

Ahoana anefa ny vokatra? Eo no mihasarotra ny raharaha. Misy fitaovana maro hanamboarana modely, izay horesahiko manaraka. Tsy mora ny fananganana modely tsara, fa inona no manaraka? Ny tombony amin'ny fampiasana ny modely amin'ny orinasa dia asa tsy misy dikany ihany koa. Ny fototry ny olana dia ny fisarahana ny enta-madinika sy transactional ary ny maodely data. Rehefa manofana modely isika dia matetika manao izany amin'ny angona ara-tantara. Fa ny toerana ho an'ny modely naorina dia amin'ny fanodinana data transactional. Inona no tombony tsara indrindra amin'ny maodely fitiliana hosoka raha ataontsika indray mandeha isan'andro? Efa ela no nandao ny vola ireo mpisoloky. Mila mampiofana ny maodely amin'ny angon-drakitra ara-tantara isika, saingy mila mampihatra izany amin'ny fotoana tena izy amin'ny angon-drakitra vaovao miditra mba hahafahan'ny fizotran'ny raharaham-barotra ataontsika araka ny vinavinan'ny modely.

ML Toolkit dia kojakoja izay manao izany: fampivondronana ny maodely sy ny tontolon'ny fifampiraharahana mba ho mora ampiasaina mivantana amin'ny fizotran'ny fandraharahana ny maodely amboarinao. Python Gateway dia ampahany amin'ny ML Toolkit ary manome fampidirana amin'ny fiteny Python (mitovitovy amin'ny R Gateway, izay anisan'ny ML Toolkit dia manome fampidirana amin'ny fiteny R).

Tools

Alohan'ny hanohizantsika dia tiako ny mamaritra fitaovana sy tranomboky Python vitsivitsy izay hampiasaintsika any aoriana.

ny teknolojia

  • Python dia fiteny fandaharana avo lenta, tanjona amin'ny ankapobeny ary avo lenta. Ny tombony lehibe indrindra amin'ny fiteny dia tranomboky lehibe misy tranomboky matematika, ML ary AI. Tahaka ny ObjectScript, fiteny miompana amin'ny zavatra izy io, saingy voafaritra amin'ny fomba mavitrika ny zava-drehetra, fa tsy amin'ny statika. Zavatra iray ihany koa ny zavatra rehetra. Ireo lahatsoratra taty aoriana dia mihevitra fa mahazatra ny fiteny. Raha te-hanomboka fianarana ianao dia manoro hevitra aho ny manomboka amin'ny tahirin-kevitra.
  • Ho an'ny fanazaran-tena manaraka, amboary Python 3.6.7 64bit.
  • IDE: Mampiasa aho PyCharm, fa amin’ny ankapobeny ΠΌΠ½ΠΎΠ³ΠΎ. Raha mampiasa Atelier ianao dia misy plugin Eclipse ho an'ny mpamorona Python. Raha mampiasa VS Code ianao dia misy fanitarana ho an'ny Python.
  • Notebook: Ho solon'ny IDE, azonao atao ny manoratra sy mizara ny scripto amin'ny kahie an-tserasera. Ny malaza indrindra amin'izy ireo dia jupyter.

trano famakiam-boky

Ity misy lisitra (ampahany) amin'ny tranomboky fianarana milina:

  • numpy - fonosana fototra ho an'ny kajy marina.
  • pandas - rafitra angon-drakitra mahomby sy fitaovana famakafakana data.
  • matplotlib - Famoronana tabilao.
  • seaborn - fijerena angon-drakitra mifototra amin'ny matplotlib.
  • Sklearn - fomba fianarana milina.
  • XGBoost - Algorithm fianarana milina ao anatin'ny fomba fiasa Gradient Boosting.
  • Gensim - NLP.
  • Keras - tambajotra neural.
  • fikorianan'ny tensor dia sehatra hamoronana maodely fianarana milina.
  • PyTorch dia sehatra hamoronana maodely fianarana milina mifantoka amin'ny Python.
  • Nyoka - PMML avy amin'ny modely isan-karazany.

Ny teknΓ΄lΓ΄jia AI/ML dia mahatonga ny fandraharahana ho mahomby sy azo ampifanarahana. Ankoatr'izay, amin'izao fotoana izao dia lasa mora kokoa ny mivoatra sy mampihatra ireo teknolojia ireo. Manomboha mianatra momba ny teknolojia AI/ML sy ny fomba ahafahan'izy ireo manampy ny orinasanao hitombo.

fametrahana

Misy fomba maro hametrahana sy fampiasana Python Gateway:

  • rafitra fandidiana
    • Windows
    • Linux
    • Mac
  • Docker
    • Ampiasao ny sary avy amin'ny DockerHub
    • Mamorona endrikao manokana

Na inona na inona fomba fametrahana dia mila ny code source ianao. Ny hany toerana hisintonana ny kaody dia pejy famoahana. Misy famoahana stable voasedra, alao fotsiny ny farany. Amin'izao fotoana izao dia 0.8 izany, fa rehefa mandeha ny fotoana dia hisy vaovao. Aza clone / alaivo ny tahiry, alaivo ny famoahana farany.

rafitra fandidiana

Raha mametraka Python Gateway amin'ny rafitra miasa ianao, dia mila mametraka Python aloha ianao (na inona na inona rafitra miasa). Ho an'ity:

  1. Mametraka Python 3.6.7 64 bit. Amporisihina ny hametraka Python ao amin'ny lahatahiry default.
  2. Apetraho ny module dill: pip install dill.
  3. Ampidino ny kaody ObjectScript (i.e. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) mankany amin'ny faritra misy vokatra. Raha toa ka mila faritra efa misy ianao hanohanana vokatra dia mandehana: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. Place antso DLL/SO/DYLIB fampirimana bin ny ohatra InterSystems IRIS anao. Ny rakitra famakiam-boky dia tsy maintsy misy amin'ny lalana naverin'ny write ##class(isc.py.Callout).GetLib().

Windows

  1. Ataovy azo antoka fa ny fari-piainan'ny tontolo iainana dia PYTHONHOME manondro an'i Python 3.6.7.
  2. Ataovy azo antoka fa ny fari-piainan'ny rafitra dia PATH misy miovaova PYTHONHOME (na ny lahatahiry tondroiny).

Linux (Debian/Ubuntu)

  1. Hamarino raha toa ny fari-piainan'ny tontolo iainana PATH misy /usr/lib ΠΈ /usr/lib/x86_64-linux-gnu. Ampiasao ny File /etc/environment hametraka fari-piainana manodidina.
  2. Raha misy hadisoana undefined symbol: _Py_TrueStruct amboary ny lamina PythonLib. koa in Readme misy fizarana Famahana olana.

Mac

  1. Amin'izao fotoana izao dia python 3.6.7 ihany no tohanana python.org. Jereo Variable PATH.

Raha nanova ny fari-piainan'ny tontolo iainana ianao dia avereno indray ny vokatra InterSystems.

Docker

Ny fampiasana container dia manana tombony maromaro:

  • Portability
  • fahombiazany
  • insulation
  • fandokafany
  • tsi-fiovan'ny sitrapony

Jereo ity andian-dahatsoratra raha mila fanazavana fanampiny momba ny fampiasana Docker miaraka amin'ny vokatra InterSystems.

Ny fananganana Python Gateway rehetra dia mifototra amin'ny container amin'izao fotoana izao. 2019.4.

Sary vita

mihazakazaka: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latesthisintona sy hampandeha ny Python Gateway miaraka amin'ny InterSystems IRIS Community Edition. Izay ihany.

Mamorona endrikao manokana

Mba hamoronana sary docker, mandehana ao amin'ny fototry ny tahiry: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Amin'ny alΓ lan'ny default, ny sary dia miorina amin'ny sary store/intersystems/iris-community:2019.4.0.383.0, na izany aza dia azonao atao ny manova izany amin'ny alΓ lan'ny fametrahana ny variable IMAGE.
Hanangana avy amin'ny InterSystems IRIS run: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest'.

Aorian'izany dia azonao atao ny mampandeha ny sary docker:

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

Raha mampiasa sary mifototra amin'ny InterSystems IRIS Community Edition ianao dia tsy mila manondro fanalahidy.

Comments

  • Fizotry ny fitsapana isc.py.test.Process mitahiry sary maromaro ao anaty lahatahiry vonjimaika. Azonao atao ny manova ity lalana ity ho lahatahiry napetraka. Mba hanaovana izany, manitsy ny toe-javatra WorkingDir mamaritra ny lahatahiry napetraka.
  • Raha te-hiditra amin'ny terminal, mandehana: docker exec -it irispy sh.
  • Midira ao amin'ny Portal Management System amin'ny alΓ lan'ny fidirana SuperUser/SYS.
  • Mba hampijanonana fitoeran-javatra iray dia mandehana: docker stop irispy && docker rm --force irispy.

Fanamarinana ny fametrahana

Rehefa nametraka Python Gateway ianao dia mendrika ny manamarina fa miasa izy io. Ampandehano ao amin'ny terminal InterSystems IRIS ity kaody ity:

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

Ny vokany dia tokony ho HELLO - ny sandan'ny variable Python x. Raha ny sata miverina sc dia fahadisoana na var banga, fisavana Readmeβ€”Fizarana famahana olana.

API

Napetraka ny Python Gateway ary nohamarininao fa miasa izany. Fotoana hanombohana mampiasa azy!
Ny tena interface tsara amin'ny Python dia isc.py.Main. Izy io dia manolotra ireto vondrona fomba manaraka ireto (rehetra miverina %Status):

  • Fampiharana kaody
  • Famindrana angona
  • mpanampy

Fampiharana kaody

Ireo fomba ireo dia ahafahanao manatanteraka code Python tsy misy dikany.

SimpleString

SimpleString no tena fomba. Mila hevitra 4 azo atao izany:

  • code dia ny andalana code hotanterahina. Toetran'ny famahanana tsipika: $c(10).
  • returnVariable dia ny anaran'ny fari-piainana hiverina.
  • serialization - ny fomba serialize returnVariable. 0 - string (default), 1 - repr.
  • result - ByRef fanondroana ny fari-piainana misy ny sandany voasoratra returnVariable.

Eo ambony dia nanao:

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

Amin'ity ohatra ity dia manendry variable Python izahay x izay midika hoe Hello ary te hamerina ny sandan'ny variable Python x mankany amin'ny faribolan'ny ObjectScript var.

ExecuteCode

ExecuteCode dia safidy azo antoka kokoa sy tsy dia teritery SimpleString.
Ny andalana ao amin'ny sehatra InterSystems IRIS dia voafetra amin'ny tarehintsoratra 3, ary raha te-hanao fehezan-dalΓ na lava kokoa ianao dia mila mampiasa stream.
Mila hevitra roa izany:

  • code - tady na andian-kaody Python hovonoina.
  • variable - (tsy voatery) manome ny vokatry ny famonoana code ity variable Python ity.

Soso-kevitra hampiasaina:

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

Amin'ity ohatra ity dia ampitombointsika 2 amin'ny 3 ary mitahiry ny valiny ao anaty fari-pitsipika Python y.

Famindrana angona

Mandefa angona mankany amin'ny Python.

Python -> InterSystems IRIS

Misy fomba 4 hahazoana ny sandan'ny variable Python ao amin'ny InterSystems IRIS, miankina amin'ny serialization ilainao:

  • String ho an'ny karazana data tsotra sy debugging.
  • Repr ho fitehirizana zavatra tsotra sy debugging.
  • JSON ho an'ny fanodinkodinana angona mora amin'ny lafiny InterSystems IRIS.
  • Pickle hamonjy zavatra.

Ireo fomba ireo dia ahafahanao mahazo variables avy amin'ny Python toy ny tady na toy ny renirano.

  • GetVariable(variable, serialization, .stream, useString) - mahazo serialization miovaova variable Π² stream. raha useString dia 1 ary ny serialization dia napetraka ao anaty tady, dia tady averina fa tsy stream.
  • GetVariableJson(variable, .stream, useString) - mahazo JSON serialization ny variable.
  • GetVariablePickle(variable, .stream, useString, useDill) -Mahazoa Pickle (na Dill) serialization ny fari-piainana.

Andeha hojerentsika ny fari-piadidiantsika y.

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

InterSystems IRIS -> Python

Mametraka angona avy amin'ny InterSystems IRIS amin'ny Python.

  • ExecuteQuery(query, variable, type, namespace) - mamorona angon-drakitra (pandas dataframe na list) avy amin'ny sql query ary apetraho amin'ny variable python variable. Kitapo plastika isc.py tokony ho hita ao amin'ny faritra namespace - hotanterahina eo ny fangatahana.
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - mitondra angona manerantany global avy amin'ny subscript start Π΄ΠΎ end amin'ny Python ho karazana variable type: list, na panda dataframe. Famaritana ny tohan-kevitra azo atao mask ary labels hita ao amin'ny antontan-taratasy sy fitehirizana kilasy Dokotera famindrana angona.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - mameno ny angona kilasy class avy id start Π΄ΠΎ end amin'ny Python ho karazana variable type: list, na panda dataframe. properties β€” lisitra (sarahan'ny faingo) ny fananan'ny kilasy hapetraka ao amin'ny angon-drakitra. Saron-tava tohanana * ΠΈ ?. Default - * (fananana rehetra). NY FANANANA %%CLASSNAME tsy noraharahiana.
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - mameno ny angona latabatra table avy id start Π΄ΠΎ end amin'ny python.

ExecuteQuery - universal (izay fanontaniana SQL manan-kery rehetra dia halefa amin'ny Python). Na izany aza, ExecuteGlobal sy ny fonony ExecuteClass ΠΈ ExecuteTable miasa miaraka amin'ny fameperana maromaro. Haingana kokoa izy ireo (3-5 heny noho ny mpamily ODBC ary 20 heny haingana kokoa noho ny ExecuteQuery). Fanazavana fanampiny ao amin'ny Dokotera famindrana angona.
Ireo fomba rehetra ireo dia manohana ny famindrana angona avy amin'ny faritra rehetra. Kitapo plastika isc.py dia tsy maintsy misy ao amin'ny faritra kendrena.

ExecuteQuery

ExecuteQuery(request, variable, type, namespace) - mampita ny valin'ny fangatahana SQL manan-kery amin'ny Python. Ity no fomba famindrana angona miadana indrindra. Ampiasao raha ExecuteGlobal ary tsy misy ny fonony.

kevitra:

  • query - fanontaniana sql.
  • variable - ny anaran'ny variable Python izay nanoratana ny angona.
  • type - list na panda dataframe.
  • namespace - ny faritra izay hanatanterahana ny fangatahana.

ExecuteGlobal

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - fandefasana eran-tany amin'ny Python.

kevitra:

  • global no anaran'izao tontolo izao tsy misy ^
  • variable - ny anaran'ny variable Python izay nanoratana ny angona.
  • type - list na panda dataframe.
  • start - ny famandrihana voalohany amin'ny global. voatery %Integer.
  • end no famandrihana farany amin'ny global. voatery %Integer.
  • mask - saron-tava eran-tany. Ny saron-tava dia mety ho fohy kokoa noho ny isan'ny saha ao amin'ny eran-tany (raha izany, ny saha any amin'ny farany dia ho voatsipaka). Fomba fanamboarana ny saron-tava:
    • + mandalo ny sanda araka ny tokony ho izy.
    • - mandingana sanda.
    • b - Karazana boolean (0 - False, ny sisa rehetra - True).
    • d β€” Daty (avy amin'ny $horolog, amin'ny Windows nanomboka tamin'ny 1970, tamin'ny Linux tamin'ny 1900).
    • t - Ora ($horolog, segondra aorian'ny mamatonalina).
    • m β€” Timestamp (TAONA-VOLANA-ANDRO HOUR:MINUTE:SECOND format string).
  • labels - %Lisitry ny anaran'ny tsanganana. Ny singa voalohany dia ny anaran'ny sora-baventy.
  • namespace - ny faritra izay hanatanterahana ny fangatahana.

ExecuteClass

fonosina ExecuteGlobal. Manomana antso mifototra amin'ny famaritana kilasy ExecuteGlobal ary miantso azy.

ExecuteClass(class, variable, type, start, end, properties, namespace) - mampita angona kilasy amin'ny Python.

kevitra:

  • class - anaram-pianarana
  • variable - ny anaran'ny variable Python izay nanoratana ny angona.
  • type - list na panda dataframe.
  • start - manomboka Id.
  • end - id farany
  • properties β€” lisitra (sarahan'ny faingo) ny fananan'ny kilasy hapetraka ao amin'ny angon-drakitra. Saron-tava tohanana * ΠΈ ?. Default - * (fananana rehetra). NY FANANANA %%CLASSNAME tsy noraharahiana.
  • namespace - ny faritra izay hanatanterahana ny fangatahana.

Ny fananana rehetra dia alefa amin'ny maha-izy azy afa-tsy ny fananana karazana %Date, %Time, %Boolean ΠΈ %TimeStamp - avadika ho kilasy Python mifanaraka amin'izany izy ireo.

ExecuteTable

fonosina ExecuteClass. Mandika ny anaran'ny latabatra ho anarana kilasy sy antso ExecuteClass. sonia:

ExecuteTable(table, variable, type, start, end, properties, namespace) - fampitana angona latabatra amin'ny Python.

kevitra:

  • table - anaran'ny latabatra.
    Ny tohan-kevitra hafa rehetra dia lany toy ny misy. ExecuteClass.

fanamarihana

  • ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable miasa haingana mitovy.
  • ExecuteGlobal 20 heny haingana kokoa noho ny ExecuteQuery amin'ny angona lehibe (fotoana famindrana > 0.01 segondra).
  • ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable miasa amin'ny globals miaraka amin'ity rafitra ity: ^global(key) = $lb(prop1, prop2, ..., propN) izay key dia isa iray.
  • ho an'ny ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable tohana sanda isan-karazany %Date mifanitsy amin'ny salan'isa mktime ary miankina amin'ny OSam-baravarankely: 1970-01-01, Linux 1900-01-01, Mac). Ampiasao %TimeStamphandefasana angona ivelan'io faritra io na mampiasa pandas dataframe ho ho an'ny lisitra ihany io fetra io.
  • ho an'ny ExecuteGlobal, ExecuteClass ΠΈ ExecuteTable ny hevitra rehetra afa-tsy ny loharanom-baovao (eneran-tany, kilasy na latabatra) sy ny miovaova dia tsy voatery.

ohatra

kilasy fitsapana isc.py.test.Person misy fomba iray mampiseho ny safidy famindrana angona rehetra:

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)

fomba fiantsoana do ##class(isc.py.test.Person).Test() hijerena ny fomba fiasan'ny fomba famindrana angon-drakitra rehetra.

Fomba mpanampy

  • GetVariableInfo(variable, serialization, .defined, .type, .length) - mahazo vaovao momba ny fari-piainana: na voafaritra, kilasy ary serialization halavan'ny.
  • GetVariableDefined(variable, .defined) - raha voafaritra ny fari-piainana.
  • GetVariableType(variable, .type) - alaivo ny kilasin'ny variable.
  • GetStatus() - alaivo ary esory ny exception farany amin'ny lafiny Python.
  • GetModuleInfo(module, .imported, .alias) - mahazo ny fari-piadidiana module sy ny sata fanafarana.
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - mahazo vaovao momba ny asa.

Interoperability

Nianatra ny fiantsoana Python Gateway avy amin'ny terminal ianao, andeha isika hanomboka hampiasa azy io amin'ny famokarana. Ny fototry ny fifandraisana amin'i Python amin'ity fomba ity dia isc.py.ens.Operation. Mamela antsika izany:

  • Manaova code Python
  • Save/Restore Python Context
  • Ampidiro sy raiso ny angona avy amin'ny Python

Amin'ny ankapobeny, ny fandidiana Pyhton dia vita isc.py.Main. hetsika isc.py.ens.Operation mamela ny fifandraisana amin'ny fizotry ny Python avy amin'ny vokatra InterSystems IRIS. Fitakiana dimy no tohana:

  • isc.py.msg.ExecutionRequest manatanteraka ny code Python. miverina isc.py.msg.ExecutionResponse miaraka amin'ny valin'ny famonoana sy ny sandan'ny variables nangatahana.
  • isc.py.msg.StreamExecutionRequest manatanteraka ny code Python. miverina isc.py.msg.StreamExecutionResponse ny vokatry ny famonoana sy ny sandan'ny fari-piainana nangatahana. Analog isc.py.msg.ExecutionRequest, fa manaiky sy mamerina stream fa tsy tady.
  • isc.py.msg.QueryRequest hamindra ny vokatry ny fanatanterahana fanontaniana SQL. miverina Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest handalo angona manerantany/kilasy/tabilao. miverina Ens.Response.
  • isc.py.msg.SaveRequest hamonjy ny contexte Python. miverina Ens.StringResponse miaraka amin'ny context ID.
  • isc.py.msg.RestoreRequest hamerina ny contexte Python.

    Ankoatra izany, isc.py.ens.Operation manana toe-javatra roa:

    • Initializer - mifidy kilasy izay mampihatra ny interface tsara isc.py.init.Abstract. Izy io dia azo ampiasaina hamenoana asa, modules, kilasy ary ny toy izany. Izy io dia tanterahina indray mandeha rehefa manomboka ny dingana.
    • PythonLib - (Linux ihany) raha mahita fahadisoana amin'ny boot ianao dia apetraho amin'ny libpython3.6m.so na amin'ny lalana feno mankany amin'ny tranomboky Python.

Famoronana dingana ara-barotra

Misy kilasy roa misy izay manamora ny fivoaran'ny fizotry ny fandraharahana:

  • isc.py.ens.ProcessUtils mamela anao haka fanamarihana avy amin'ny hetsika misy fanoloana miovaova.
  • isc.py.util.BPEmulator manamora ny fitsapana ny fizotran'ny raharaham-barotra amin'ny Python. Afaka manatanteraka dingana fandraharahana (ampahany Python) amin'ny dingana ankehitriny.

Fanoloana miovaova

Ny fizotran'ny raharaham-barotra rehetra nolovaina tamin'ny isc.py.ens.ProcessUtils, afaka mampiasa ny fomba GetAnnotation(name) hahazoana ny sandan'ny fanamarihana hetsika amin'ny anarany. Ny fanamarihan'ny hetsika dia mety misy fari-pitsipika izay hodinihina amin'ny lafiny InterSystems IRIS alohan'ny handefasana azy amin'ny Python. Ity ny syntax ho an'ny substitution variable:

  • ${class:method:arg1:...:argN} - fomba fiantsoana
  • #{expr} - manatanteraka kaody amin'ny fiteny ObjectScript.

Misy ohatra iray amin'ny fizotran'ny fandraharahana fitsapana isc.py.test.Process, ohatra, amin’ny asa atao Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). Amin'ity ohatra ity:

  • #{process.WorkDirectory} mamerina ny fananana WorkDirectory an'ilay zavatra process, izay ohatra amin'ny kilasy isc.py.test.Process ireo. dingana ara-barotra ankehitriny.
  • ${%PopulateUtils:Integer:1:100} miantso fomba Integer kilasy %PopulateUtils, ady hevitra mandalo 1 ΠΈ 100, mamerina integer kisendrasendra ao amin'ny salan'isa 1...100.

Andramo ny fizotran'ny raharaham-barotra

Ny famokarana fitsapana sy ny fizotran'ny fandraharahana fitsapana dia azo alaina amin'ny alΓ lan'ny ampahany amin'ny Gateway Python. Mba hampiasana azy ireo:

  1. Ao amin'ny OS terminal run: pip install pandas matplotlib seaborn.
  2. Ao amin'ny terminal InterSystems IRIS, mandehana: do ##class(isc.py.test.CannibalizationData).Import() hamenoana ny angona andrana.
  3. Alefaso ny vokatra isc.py.test.Production.
  4. Alefaso karazana fangatahana Ens.Request Π² isc.py.test.Process.

Andeha hojerentsika ny fomba iarahan'izy rehetra. misokatra isc.py.test.Process ao amin'ny tonian-dahatsoratra BPL:

Python Gateway ao amin'ny InterSystems IRIS

Fampiharana kaody

Ny antso lehibe indrindra dia ny fanatanterahana ny code Python:

Python Gateway ao amin'ny InterSystems IRIS

Fangatahana ampiasaina isc.py.msg.ExecutionRequest, ireto ny fananany:

  • Code - Code Python.
  • SeparateLines - na hizara ny kaody ho andalana ho an'ny famonoana. $c(10) (n) dia ampiasaina hanasarahana tady. Mariho fa TSY asaina manodina ny hafatra manontolo indray mandeha, ity fiasa ity dia natao ho an'ny fanodinana ihany def ary fomba fiteny mitovitovy amin'ny andalana maromaro. toerana misy anao 0.
  • Variables dia lisitr'ireo fari-pahalalana sarahan'ny faingo izay hanampy amin'ny valiny.
  • Serialization - Ahoana ny fanaovana serialize ny fari-piainana tiantsika haverina. Safidy: Str, Repr, JSON, Pickle ΠΈ Dill, default Str.

Raha ny anay dia ny fananana ihany no apetrakay Code, ka ny fananana hafa rehetra dia mampiasa ny sandany default. Nametraka izany tamin'ny antso izahay process.GetAnnotation("Import pandas"), izay mamerina fanamarihana rehefa vita ny fanoloana miovaova. Farany ny kaody import pandas as pd dia hafindra amin'ny Python. GetAnnotation Mety ilaina amin'ny fahazoana script Python maromaro, saingy tsy misy famerana amin'ity fomba fahazoana code ity. Azonao atao ny mametraka ny fananana Code amin'ny fomba mety aminao.

Mahazo Variables

Fanamby hafa mahaliana mampiasa isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Python Gateway ao amin'ny InterSystems IRIS

Izy io dia manisa ny Correlation Matrix amin'ny lafiny Python ary manala ny fari-piainana corrmat miverina amin'ny InterSystems IRIS amin'ny endrika JSON amin'ny fametrahana ny fananana fangatahana:

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

Hitantsika ao amin'ny Visual Trace ny valiny:

Python Gateway ao amin'ny InterSystems IRIS

Ary raha mila an'io sanda io ao amin'ny BP isika dia azo alaina toy izao: callresponse.Variables.GetAt("corrmat").

Famindrana angona

Manaraka, andao hiresaka momba ny famindrana angon-drakitra avy amin'ny InterSystems IRIS mankany Python, ny fangatahana famindrana data rehetra dia mampihatra ny interface. isc.py.msg.DataRequest, izay manome ireto fananana manaraka ireto:

  • Variable dia variable Python izay nanoratana ny angona.
  • Type - karazana miovaova: dataframe (pandas dataframe) na list.
  • Namespace - ny faritra andraisantsika data. Kitapo plastika isc.py tokony ho hita ao amin'io faritra io. Mety ho faritra tsy misy fanohanana vokatra izany.

Miorina amin'ity interface ity, kilasy fangatahana 4 no ampiharina:

  • isc.py.msg.QueryRequest - mametraka fananana Query handefa fangatahana SQL.
  • isc.py.msg.ClassRequest - mametraka fananana Class handalo ny angona kilasy.
  • isc.py.msg.TableRequest - mametraka fananana Table handalo angona latabatra.
  • isc.py.msg.GlobalRequest - mametraka fananana Global hamindra angona maneran-tany.

Ao amin'ny dingana fitsapana, jereo ny hetsika RAWizay isc.py.msg.QueryRequest aseho amin'ny asa.

Python Gateway ao amin'ny InterSystems IRIS

Tehirizo/Famerenana ny contexte Python

Farany, afaka mitahiry ny contexte Python ao amin'ny InterSystems IRIS isika, mba hanaovana izany, alefaso isc.py.msg.SaveRequest miaraka amin'ny hevitra:

  • Mask β€” Variable mahafa-po ny saron-tava ihany no voavonjy. Nanohana * ΠΈ ?... ohatra: "Data*, Figure?"... toerana misy anao *.
  • MaxLength - Ny halavany ambony indrindra amin'ny fari-piainana voatahiry. Raha lava kokoa ny serialization amin'ny variable iray, dia tsy horaharahaina izany. Apetraho amin'ny 0 mba hahazoana miovaova amin'ny halavany rehetra. toerana misy anao $$$MaxStringLength.
  • Name - Anaran'ny toe-javatra (tsy voatery).
  • Description - Famaritana ny teny manodidina (tsy voatery).

Miverina Ens.StringResponse с Id voatahiry contexte. Ao amin'ny dingana fitsapana, jereo ny hetsika Save Context.

Fangatahana mifandraika isc.py.msg.RestoreRequest mitondra contexte avy amin'ny InterSystems IRIS ao amin'ny Python:

  • ContextId dia ny contexte identifier.
  • Clear β€” esory ny contexte alohan'ny hamerenana azy.

Jupyter Notebook

Jupyter Notebook dia fampiharana tranonkala loharano misokatra ahafahanao mamorona sy mamoaka kahie misy kaody, sary, ary lahatsoratra. Python Gateway dia ahafahanao mijery sy manitsy ny fizotran'ny BPL ho toy ny Jupyter Notebook. Mariho fa ny executor Python 3 mahazatra dia ampiasaina amin'izao fotoana izao.

Ity fanitarana ity dia mihevitra fa misy kaody Python ny fanamarihana ary mampiasa anarana hetsika toy ny lohateny teo aloha. Azo atao izao ny mamolavola ny fizotran'ny orinasa PythonGateway ao amin'ny Jupyter Notebook. Izao no azo atao:

  • Mamorona fomba fiasa vaovao
  • Fafao ny fizotran'ny raharaham-barotra
  • Mamorona hetsika vaovao
  • Hanova hetsika
  • Fafao ny hetsika

eto horonan-tsary demo. Ary screenshots sasany:

Process Explorer

Python Gateway ao amin'ny InterSystems IRIS

Tonian-dahatsoratra

Python Gateway ao amin'ny InterSystems IRIS

fametrahana

  1. Mila InterSystems IRIS 2019.2+ ianao.
  2. Mametraka PythonGateway v0.8+ (mila isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints ΠΈ isc.py.ens.ProcessUtils).
  3. Havaozy ny kaody ObjectScript avy amin'ny tahiry.
  4. hampihatra do ##class(isc.py.util.Jupyter).Install() ary araho ny bitsika.

tahirin-kevitra.

hitany

MLToolkit dia fitaovana iray izay mikendry ny hampifangaro ny maodely sy ny tontolo iainana ara-barotra mba ho mora ampiasaina mivantana amin'ny fizotran'ny fandraharahana ireo maodely naorina. Python Gateway dia ampahany amin'ny MLToolkit ary manome fampidirana amin'ny fiteny Python, ahafahanao mandrindra ny algorithm fianarana milina noforonina amin'ny Python (ny tontolo tena lehibe ho an'ny mpahay siansa Data maro), mampiasa trano famakiam-boky efa vita maro mba hamoronana haingana adaptive, robotic analytical AI / Vahaolana ML amin'ny sehatra InterSystems IRIS.

soratra masina

MLToolkit

Ny vondrona mpampiasa MLToolkit dia tahiry GitHub manokana noforonina ao anatin'ny fikambanana InterSystems GitHub orinasa. Miantefa amin'ireo mpampiasa ivelany izay mametraka, mianatra, na efa mampiasa singa MLToolkit, anisan'izany ny Python Gateway. Ny vondrona dia manana tranga maromaro nampiharina (miaraka amin'ny kaody loharano sy angona fitsapana) eo amin'ny sehatry ny varotra, famokarana, fanafody ary indostria maro hafa. Raha te hiditra ao amin'ny vondrona mpampiasa ML Toolkit dia alefaso mailaka fohy amin'ity adiresy manaraka ity: [email voaaro] ary ampidiro ao amin'ny taratasinao ireto fampahalalana manaraka ireto:

  • GitHub solonanarana
  • Organisation (miasa na mianatra)
  • Toerana (ny toerana misy anao ao amin'ny fikambanana misy anao, na "Mpianatra" na "Mahaleotena").
  • firenena

Ho an'ireo izay efa namaky ny lahatsoratra ary liana amin'ny InterSystems IRIS ho sehatra fampivoarana na fampiantranoana ny faharanitan-tsaina artifisialy sy ny mekanika fianarana milina, dia manasa anao izahay hiresaka momba ireo toe-javatra mety hahaliana ny orinasanao. Hanadihady mora foana ny filan'ny orinasanao izahay ary hiara-hamaritra drafitra hetsika; adiresy mailaka mifandray amin'ny vondrona manam-pahaizana AI / ML - [email voaaro].

Source: www.habr.com

Add a comment