Ụzọ Python na InterSystems IRIS

Edemede a bụ gbasara Python Gateway, ọrụ obodo mepere emepe maka ikpo okwu data InterSystems IRIS. Ọrụ a na-enye gị ohere ịhazi algorithms mmụta igwe ọ bụla emebere na Python (ebe bụ isi maka ọtụtụ ndị ọkà mmụta sayensị data), jiri ọtụtụ ọba akwụkwọ emebere ngwa ngwa mepụta ngwa ngwa ngwa ngwa AI / ML nyocha robot na nyiwe InterSystems IRIS. N'ime edemede a, m ga-egosi gị otu InterSystems IRIS nwere ike isi hazie usoro Python, rụọ ọrụ mbufe data ụzọ abụọ nke ọma, wee mepụta usoro azụmaahịa nwere ọgụgụ isi.

Atụmatụ

  1. Okwu Mmalite.
  2. Ngwa.
  3. Nwụnye
  4. API.
  5. Mmekọrịta.
  6. Akwụkwọ ndetu Jupyter.
  7. Mkpebi.
  8. Njikọ.
  9. Ngwa ML

Okwu Mmalite

Eke Ọgba bụ asụsụ mmemme n'ozuzu ya na-elekwasị anya n'ịkwalite mmepụta mmepụta yana ịgụ koodu. N'ime usoro isiokwu a, m ga-ekwu maka ohere nke iji asụsụ Python na usoro InterSystems IRIS, ebe isi ihe na-elekwasị anya n'isiokwu a bụ iji Python dị ka asụsụ maka ịmepụta na itinye ụdị mmụta igwe.

Ịmụ igwe (ML) bụ klaasị nke ụzọ ọgụgụ isi mmadụ, njirimara njirimara ya abụghị ihe ngwọta kpọmkwem nke nsogbu, kama mmụta na usoro nke idozi ọtụtụ nsogbu ndị yiri ya.

Algọridim mmụta igwe na ụdị na-aghọwanye ihe a na-ahụkarị. Enwere ọtụtụ ihe kpatara nke a, mana ihe niile na-agbadata na ịnweta, ịdị mfe, yana nweta nsonaazụ bara uru. Ịchịkọta ma ọ bụ ọbụna netwọk neural ịṅomi ọ bụ teknụzụ ọhụrụ?

N'ezie ọ bụghị, ma n'oge a ọ dịghị mkpa ka e dee ọtụtụ narị puku ahịrị nke koodu na-agba ọsọ otu nlereanya, na ọnụ ahịa nke ịmepụta na iji ụdị na-adịwanye nta na obere.

Ngwaọrụ na-agbanwe - ebe anyị enweghị ngwaọrụ AI / ML dabere na GUI zuru oke, a na-ahụkwa ọganihu anyị hụworo na ọtụtụ klaasị nke sistemụ ozi ndị ọzọ dị ka BI (site na koodu ederede na iji frameworks na GUI gbakwasara configurable ngwọta) , na-ahụkwa. na AI/ML ngwaọrụ okike. Anyị agafeworị ọkwa nke koodu ederede na taa anyị na-eji frameworks maka iwu ụlọ na ọzụzụ ụdị.

Nkwalite ndị ọzọ, dị ka ike ịgbasa ụdị a zụrụ azụ ebe onye ọrụ njedebe ga-agwụcha ọzụzụ ihe nlereanya na data ha kpọmkwem, na-emekwa ka ọ dịkwuo mfe ịmalite itinye mmụta igwe. Ọganihu ndị a na-eme ka ọ dịkwuo mfe ịmụta mmụta igwe, ma maka ndị ọkachamara ma maka ụlọ ọrụ n'ozuzu ya.

N'aka nke ọzọ, anyị na-anakọta ọtụtụ data. Site na ikpo okwu data ejikọtara ọnụ dị ka InterSystems IRIS, enwere ike ịkwadebe ozi a niile ozugbo wee jiri dị ka ntinye maka ụdị mmụta igwe.

Site na mgbanwe na igwe ojii, ịmalite ọrụ AI / ML dị mfe karịa mgbe ọ bụla. Anyị nwere ike iri naanị ihe ndị anyị chọrọ. Ọzọkwa, ekele maka myirịta nke igwe ojii na-enye, anyị nwere ike ịchekwa oge efu.

Ma gịnị banyere nsonaazụ? Nke a bụ ebe ihe na-esiwanye ike. Enwere ọtụtụ ngwaọrụ maka ụdị ụlọ, nke m ga-atụle ọzọ. Ịrụ ezigbo ihe nlereanya adịghị mfe, ma gịnị na-esote? Ịrite uru site na iji ihe nlereanya site na azụmahịa bụkwa ọrụ na-adịghị mkpa. Mgbọrọgwụ nsogbu ahụ bụ nkewa nke ọrụ nyocha na azụmahịa na ụdị data. Mgbe anyị na-azụ ihe nlereanya, anyị na-emekarị ya na data akụkọ ihe mere eme. Ma ebe maka ihe nlereanya e wuru bụ na nhazi data azụmahịa. Kedu uru kacha mma ụdị nchọpụta azụmahịa aghụghọ ma ọ bụrụ na anyị na-agba ya otu ugboro n'ụbọchị? Ndị scammers ejirila ego pụọ ogologo oge. Anyị kwesịrị ịzụ ihe nlereanya na data akụkọ ihe mere eme, ma anyị kwesịkwara itinye ya ozugbo na data ọhụrụ na-abata ka usoro azụmahịa anyị nwee ike ime ihe dịka amụma ndị e mere site na ihe nlereanya ahụ.

ML Toolkit bụ ngwa ọrụ na-eme nke ahụ: na-achịkọta ụdị ọnụ na ebe azụmahịa ka enwere ike iji ụdị ndị ị na-ewu ngwa ngwa na usoro azụmahịa gị. Python Gateway bụ akụkụ nke ML Toolkit ma na-enye njikọta na asụsụ Python (dị ka R Gateway, ịbụ akụkụ nke ML Toolkit na-enye njikọta na asụsụ R).

Ngwaọrụ

Tupu anyị aga n'ihu, ọ ga-amasị m ịkọwa ụfọdụ ngwa Python na ọba akwụkwọ anyị ga-eji emechaa.

nke technology

  • Eke Ọgba bụ asụsụ a tụgharịrị, ebumnuche izugbe, asụsụ mmemme dị elu. Isi uru nke asụsụ a bụ nnukwu ọbá akwụkwọ mgbakọ na mwepụ, ụlọ akwụkwọ ML na AI. Dị ka ObjectScript, ọ bụ asụsụ gbadoro ụkwụ n'ihe, mana a na-akọwa ihe niile n'ike, ọ bụghị n'usoro. Ọzọkwa ihe niile bụ ihe. Akụkọ ndị ọzọ na-eche na amatala asụsụ ahụ. Ọ bụrụ na ịchọrọ ịmalite mmụta, ana m akwado ịmalite akwụkwọ.
  • Maka mmega ahụ anyị na-esote, setịpụ Python 3.6.7 64bit.
  • IDE: m na-eji PyCharm, ma n'ozuzu много. Ọ bụrụ na ị na-eji Atelier, enwere ngwa mgbakwunye Eclipse maka ndị mmepe Python. Ọ bụrụ na ị na-eji koodu VS, mgbe ahụ enwere ndọtị maka Python.
  • Akwụkwọ ndetu: Kama IDE, ị nwere ike dee na kesaa script gị na akwụkwọ ndetu n'ịntanetị. Ihe kacha ewu ewu n'ime ha bụ Jupyterị.

Ọba akwụkwọ

Nke a bụ ndepụta (akụkụ akụkụ) nke ụlọ akwụkwọ mmụta igwe:

  • Enweghị ntụpọ - ngwugwu bụ isi maka ngụkọta oge.
  • Pandas - nhazi data dị elu yana ngwaọrụ nyocha data.
  • matplotlib - Ịmepụta eserese.
  • Osimiri mmiri - anya data dabere na matplotlib.
  • Sklearn - igwe mmụta ụzọ.
  • XGBoost - algọridim mmụta igwe n'ime usoro nkwalite gradient.
  • Gensim - NLP.
  • Keras - netwọkụ akwara.
  • tensor eruba bụ ikpo okwu maka ịmepụta ụdị mmụta igwe.
  • PyTorch bụ ikpo okwu maka ịmepụta ụdị mmụta igwe na-elekwasị anya na Python.
  • Nyoka - PMML sitere na ụdị dị iche iche.

Teknụzụ AI/ML na-eme ka azụmaahịa na-arụ ọrụ nke ọma na ngbanwe. Ọzọkwa, taa teknụzụ ndị a na-adịwanye mfe ịzụlite na mejuputa ya. Malite ịmụta maka teknụzụ AI/ML yana otu ha nwere ike isi nyere ọgbakọ gị aka ito eto.

ọnọdụ

Enwere ọtụtụ ụzọ iji wụnye na iji Python Gateway:

  • Os
    • Windows
    • Linux
    • Mac
  • Docker
    • Jiri onyonyo si na DockerHub
    • Mepụta onyonyo nke gị

N'agbanyeghị usoro ntinye, ị ga-achọ koodu isi mmalite. Naanị ebe ị ga-ebudata koodu ahụ bụ ibe ewepụtara. Ọ nwere mwepụta kwụsiri ike nwalere, naanị jide nke kachasị ọhụrụ. N'oge ọ bụ 0.8, ma ka oge na-aga, a ga-enwe ndị ọhụrụ. Edokwala/budata ebe nchekwa ahụ, budata ntọhapụ ọhụrụ.

Os

Ọ bụrụ na ị na-etinye Python Gateway na sistemụ arụmọrụ, nke mbụ (n'agbanyeghị sistemụ arụmọrụ) ị ga-achọ itinye Python. Maka nke a:

  1. Wụnye Python 3.6.7 64 bit. A na-atụ aro ka ịwụnye Python na ndekọ ndabara.
  2. Wụnye modul dill: pip install dill.
  3. Budata koodu ObjectScript (ya bụ. do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) na mpaghara ọ bụla nwere ngwaahịa. Ọ bụrụ na ịchọrọ mpaghara dị adị iji kwado ngwaahịa, gbaa ọsọ: write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. Ebe Kpọọ DLL/SO/DYLIB na folda bin Ihe atụ InterSystems IRIS gị. Faịlụ ọba akwụkwọ ga-adịrịrị n'ụzọ nke eweghachiri write ##class(isc.py.Callout).GetLib().

Windows

  1. Gbaa mbọ hụ na mgbanwe gburugburu ebe obibi dị PYTHONHOME rụtụrụ aka na Python 3.6.7.
  2. Gbaa mbọ hụ na agbanwe agbanwe gburugburu sistemu PATH nwere mgbanwe PYTHONHOME (ma ọ bụ akwụkwọ ndekọ aha ọ na-arụtụ aka).

Linux (Debian/Ubuntu)

  1. Lelee ma ọ bụrụ na mgbanwe gburugburu ebe obibi bụ PATH nwere /usr/lib и /usr/lib/x86_64-linux-gnu. Jiri faịlụ /etc/environment ịtọ mgbanwe gburugburu ebe obibi.
  2. N'ọnọdụ nke njehie undefined symbol: _Py_TrueStruct tọọ ntọala PythonLib. nakwa n'ime Na-agụ enwere ngalaba nchọpụta nsogbu.

Mac

  1. Ugbu a ọ bụ naanị Python 3.6.7 ka a na-akwado Python.org. Lelee mgbanwe PATH.

Ọ bụrụ na ị gbanweela mgbanwe gburugburu, malitegharịa ngwaahịa InterSystems gị.

Docker

Iji containers nwere ọtụtụ uru:

  • Enwere ike ibugharị
  • Irè
  • Mkpuchi
  • ìhè
  • Adịghị agbanwe agbanwe

Lelee nke a usoro isiokwu maka ozi ndị ọzọ maka iji Docker na ngwaahịa InterSystems.

Ihe niile na-ewu Python Gateway bụ ihe dabere na akpa ugbu a. 2019.4.

Onyonyo emechara

Gbaa: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestiji budata ma mee Python Gateway na InterSystems IRIS Community Edition. Ọ gwụla.

Mepụta onyonyo nke gị

Iji wuo onyonyo docker, gbagharịa na mgbọrọgwụ nke ebe nchekwa ahụ: docker build --force-rm --tag intersystemscommunity/irispy:latest ..
Site na ndabara, a na-ewu onyonyo a dabere na onyonyo a store/intersystems/iris-community:2019.4.0.383.0, Otú ọ dị, ị nwere ike ịgbanwe nke a site na ịtọ mgbanwe IMAGE.
Iji wuo site na InterSystems IRIS na-agba ọsọ: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy: latest'.

Mgbe nke ahụ gasịrị, ị nwere ike ịme foto docker:

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

Ọ bụrụ na ị na-eji onyonyo dabere na InterSystems IRIS Community Edition, ịkwesighi ịkọwa igodo.

Комментарии

  • Usoro ule isc.py.test.Process na-echekwa ọtụtụ onyonyo na ndekọ nwa oge. Ị nwere ike ịchọrọ ịgbanwe ụzọ a ka ọ bụrụ ndekọ aha n'elu. Iji mee nke a, dezie ntọala WorkingDir na-akọwapụta ndekọ n'elu.
  • Ka ịbanye n'ọnụ ọnụ, gbaa ọsọ: docker exec -it irispy sh.
  • Ịnweta Portal Management System site na nbanye SuperUser/SYS.
  • Iji kwụsị akpa, gbaa ọsọ: docker stop irispy && docker rm --force irispy.

Na-elele echichi

Ozugbo ị rụnyere Python Gateway, ọ bara uru ịlele na ọ na-arụ ọrụ. Gbaa koodu a na ọdụ InterSystems IRIS:

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

Nsonaazụ kwesịrị ịbụ HELLO - uru nke Python variable x. Ọ bụrụ na nlọghachi ọnọdụ sc bụ mmejọ ma ọ bụ var efu, lelee Readme — ngalaba nchọpụta nsogbu.

API

Awụnyere Python Gateway ma ị chọpụtala na ọ na-arụ ọrụ. Oge ịmalite iji ya!
Isi interface na Python bụ isc.py.Main. Ọ na-enye otu ụzọ ndị a (laghachi niile %Status):

  • Koodu ogbugbu
  • Nnyefe data
  • Ndi enyemaka

Koodu ogbugbu

Ụzọ ndị a na-enye gị ohere ime koodu Python aka ike.

SimpleString

SimpleString bụ isi ụzọ. Ọ na-ewe arụmụka nhọrọ 4:

  • code bụ akara koodu ime. agwa ndepụta ahịrị: $c(10).
  • returnVariable bụ aha mgbanwe ịlaghachi.
  • serialization - esi serialize returnVariable. 0 - eriri (ndabara), 1 - repr.
  • result - ByRef na-ezo aka na mgbanwe nke edere uru returnVariable.

N'elu anyị emeela:

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

N'ọmụmaatụ a, anyị na-ekenye na Python variable x pụtara Hello ma chọọ iweghachi uru nke mgbanwe Python x gaa na mgbanwe ObjectScript var.

ExecuteCode

ExecuteCode bụ ihe ọzọ dị nchebe yana enweghị mmachi SimpleString.
Ahịrị dị na InterSystems IRIS n'elu ikpo okwu bụ naanị mkpụrụedemede 3, ma ọ bụrụ na ịchọrọ ịme mpempe koodu ogologo, ịkwesịrị iji iyi.
Ọ na-ewe arụmụka abụọ:

  • code - eriri ma ọ bụ iyi nke koodu Python ga-egbu.
  • variable - (nhọrọ) na-ekenye nsonaazụ nke ogbugbu code mgbanwe Python a.

Tụọ aro iji:

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

N'ihe atụ a, anyị na-amụba 2 site na 3 ma chekwaa nsonaazụ ya na mgbanwe Python y.

Nnyefe data

Nyefee data gaa na site na Python.

Python -> InterSystems IRIS

Enwere ụzọ anọ iji nweta uru nke Python variable na InterSystems IRIS, dabere na serialization ị chọrọ:

  • String maka ụdị data dị mfe na debugging.
  • Repr maka ịchekwa ihe ndị dị mfe na debugging.
  • JSON maka njikwa data dị mfe n'akụkụ InterSystems IRIS.
  • Pickle iji chekwaa ihe.

Ụzọ ndị a na-enye gị ohere ịnweta mgbanwe site na Python dị ka eriri ma ọ bụ dị ka iyi.

  • GetVariable(variable, serialization, .stream, useString) - nweta serialization mgbanwe variable в stream. Ọ bụrụ useString bụ 1 ma tinye serialization na eriri, wee weghachi eriri, ọ bụghị iyi.
  • GetVariableJson(variable, .stream, useString) - nweta usoro JSON nke mgbanwe.
  • GetVariablePickle(variable, .stream, useString, useDill) - Nweta usoro pickle (ma ọ bụ dil) nke mgbanwe.

Ka anyị gbalịa nweta mgbanwe anyị y.

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

InterSystems IRIS -> Python

Na-ebu data sitere na InterSystems IRIS n'ime Python.

  • ExecuteQuery(query, variable, type, namespace) - na-emepụta dataset (pandas dataframe ma ọ bụ list) site na ajụjụ sql wee tọọ ya na mgbanwe Python variable. Akpa rọba isc.py kwesịrị ịdị na mpaghara namespace - A ga-eme arịrịọ ahụ n'ebe ahụ.
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - na-ebu data zuru ụwa ọnụ global site na ndenye aha start ka end na Python dị ka ụdị mgbanwe type: list, ma ọ bụ pandas dataframe. Nkọwa nke arụmụka nhọrọ mask na labels dị na akwụkwọ klaasị na ebe nchekwa Akwụkwọ Nyefee data.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - na-ebu data klas class si id start ka end na Python dị ka ụdị mgbanwe type: list, ma ọ bụ pandas dataframe. properties - ndepụta (nke rịkọm dị iche iche) nke akụrụngwa klas a ga-ebunye n'ime dataset. A kwadoro ihe mkpuchi * и ?. Nke izizi - * (ihe niile). Ngwongwo %%CLASSNAME leghaara anya.
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - na-ebu data tebụl table si id start ka end na Python.

ExecuteQuery - eluigwe na ala (a ga-ebufe ajụjụ SQL ọ bụla na Python). Agbanyeghị, ExecuteGlobal na ihe mkpuchi ya ExecuteClass и ExecuteTable na-arụ ọrụ na ọtụtụ mgbochi. Ha na-agba ọsọ ọsọ (ugboro 3-5 ngwa ngwa karịa onye ọkwọ ụgbọ ala ODBC na ugboro 20 ngwa ngwa karịa ExecuteQuery). Ozi ndị ọzọ na Akwụkwọ Nyefee data.
Ụzọ ndị a niile na-akwado ịnyefe data site na mpaghara ọ bụla. Akpa rọba isc.py ga-adị na mpaghara ebumnuche.

Mee ajụjụ

ExecuteQuery(request, variable, type, namespace) - na-ebufe nsonaazụ nke ajụjụ SQL ọ bụla ziri ezi na Python. Nke a bụ usoro mbufe data kacha nwayọ. Jiri ya ma ọ bụrụ ExecuteGlobal na ihe mkpuchi ya adịghị.

Arụmụka:

  • query - ajụjụ sql.
  • variable - aha Python variable nke edere data na ya.
  • type - list ma ọ bụ pandas dataframe.
  • namespace - mpaghara ebe a ga-emezu arịrịọ ahụ.

Mezue Global

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - na-enyefe Python zuru ụwa ọnụ.

Arụmụka:

  • global bụ aha nke zuru ụwa ọnụ enweghị ^
  • variable - aha Python variable nke edere data na ya.
  • type - list ma ọ bụ pandas dataframe.
  • start - ndebanye aha mbụ nke ụwa. Ọ bụchaghị %Integer.
  • end bụ ndebanye aha ikpeazụ nke ụwa. Ọ bụchaghị %Integer.
  • mask - nkpuchi nke ụkpụrụ zuru ụwa ọnụ. Ihe nkpuchi ahụ nwere ike ịdị mkpụmkpụ karịa ọnụ ọgụgụ nke ubi na ụwa (nke ikpe a ga-awụpụ ubi na njedebe). Otu esi ahazi ihe nkpuchi:
    • + gafere uru dị ka ọ dị.
    • - ikwu uru.
    • b - ụdị Boolean (0 - False, ndị ọzọ niile - True).
    • d - Ụbọchị (site na $horolog, na Windows site na 1970, na Linux site na 1900).
    • t - Oge ($ horolog, sekọnd mgbe etiti abalị).
    • m - stampụ oge (OGE-Ụbọchị AFỌ-Ọnwa: nkeji: eriri usoro nke abụọ).
  • labels - % Ndepụta aha kọlụm. Ihe mbụ bụ aha ndebanye aha.
  • namespace - mpaghara ebe a ga-emezu arịrịọ ahụ.

ExecuteClass

kechie ExecuteGlobal. Na-akwado oku dabere na nkọwa klaasị ExecuteGlobal ma kpọọ ya.

ExecuteClass(class, variable, type, start, end, properties, namespace) - ịnyefe data klas na Python.

Arụmụka:

  • class - aha klas
  • variable - aha Python variable nke edere data na ya.
  • type - list ma ọ bụ pandas dataframe.
  • start - mmalite Id.
  • end - ikpeazụ Id
  • properties - ndepụta (nke rịkọm dị iche iche) nke akụrụngwa klas a ga-ebunye n'ime dataset. A kwadoro ihe mkpuchi * и ?. Nke izizi - * (ihe niile). Ngwongwo %%CLASSNAME leghaara anya.
  • namespace - mpaghara ebe a ga-emezu arịrịọ ahụ.

A na-agafe akụrụngwa niile ma ewezuga akụrụngwa ụdị %Date, %Time, %Boolean и %TimeStamp - A na-atụgharị ha na klaasị Python kwekọrọ.

ExecutTable

kechie ExecuteClass. Na-atụgharị aha tebụl ka ọ bụrụ aha klaasị na oku ExecuteClass. mbinye aka:

ExecuteTable(table, variable, type, start, end, properties, namespace) - na-ebufe data tebụl na Python.

Arụmụka:

  • table - tebụl aha.
    A na-agafe arụmụka ndị ọzọ dịka ọ dị. ExecuteClass.

Ihe edeturu

  • ExecuteGlobal, ExecuteClass и ExecuteTable na-arụ ọrụ ohiha ngwa ngwa.
  • ExecuteGlobal 20 ugboro ngwa ngwa karịa ExecuteQuery na nnukwu datasets (oge mbufe> 0.01 nke abụọ).
  • ExecuteGlobal, ExecuteClass и ExecuteTable rụọ ọrụ na globals na usoro a: ^global(key) = $lb(prop1, prop2, ..., propN) ebe key bụ ọnụọgụgụ.
  • Iji ExecuteGlobal, ExecuteClass и ExecuteTable Oke uru akwadoro %Date kwekọrọ na oke mktime ma dabere na OSwindows: 1970-01-01, Linux 1900-01-01, mac). Jiri %TimeStampịnyefe data na mpụga oke a ma ọ bụ jiri pandas dataframe dị ka mmachi a bụ naanị maka ndepụta.
  • Iji ExecuteGlobal, ExecuteClass и ExecuteTable arụmụka niile ma e wezụga isi iyi data (ụwa, klaasị ma ọ bụ tebụl) na mgbanwe bụ nhọrọ.

atụ

ule klas isc.py.test.Onye nwere usoro na-egosi nhọrọ mbufe data niile:

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)

usoro oku do ##class(isc.py.test.Person).Test() ịhụ ka ụzọ mbufe data niile si arụ ọrụ.

Ụzọ inyeaka

  • GetVariableInfo(variable, serialization, .defined, .type, .length) - nweta ozi gbasara mgbanwe: ma ọ na-akọwa, klaasị na ogologo serialization.
  • GetVariableDefined(variable, .defined) - ma agbanwe agbanwe.
  • GetVariableType(variable, .type) - nweta klas nke mgbanwe.
  • GetStatus() - nweta ma wepụ nke ikpeazụ n'akụkụ Python.
  • GetModuleInfo(module, .imported, .alias) - nweta mgbanwe modul na ọkwa mbubata.
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - nweta ozi gbasara ọrụ ahụ.

Mmekọrịta

Ị mụtala ka esi akpọ Python Gateway site na njedebe, ugbu a ka anyị malite iji ya na mmepụta. Ihe ndabere maka ịmekọrịta Python na ọnọdụ a bụ isc.py.ens.Operation. Ọ na-enye anyị ohere:

  • Mepụta koodu Python
  • Chekwa/Weghachite ederede Python
  • Budata ma nweta data sitere na Python

N'ụzọ bụ isi, ọrụ Pyhton bụ ihe mkpuchi isc.py.Main. Ọrụ isc.py.ens.Operation na-enye ohere mmekọrịta na usoro Python sitere na ngwaahịa InterSystems IRIS. A na-akwado arịrịọ ise:

  • isc.py.msg.ExecutionRequest iji mebie koodu Python. na-alaghachi isc.py.msg.ExecutionResponse na nsonaazụ ogbugbu na ụkpụrụ nke mgbanwe ndị a rịọrọ.
  • isc.py.msg.StreamExecutionRequest iji mebie koodu Python. na-alaghachi isc.py.msg.StreamExecutionResponse nsonaazụ nke ogbugbu na ụkpụrụ nke mgbanwe ndị a rịọrọ. Analọg isc.py.msg.ExecutionRequest, ma na-anabata ma na-eweghachi iyi kama ị na-eji eriri.
  • isc.py.msg.QueryRequest iji nyefee nsonaazụ nke ime ajụjụ SQL. na-alaghachi Ens.Response.
  • isc.py.msg.GlobalRequest/isc.py.msg.ClassRequest/isc.py.msg.TableRequest iji nyefee data zuru ụwa ọnụ / klas / tebụl. na-alaghachi Ens.Response.
  • isc.py.msg.SaveRequest iji chekwaa ọnọdụ Python. na-alaghachi Ens.StringResponse nwere ID ọnọdụ.
  • isc.py.msg.RestoreRequest iji weghachi ọnọdụ Python.

    Ọzọkwa, isc.py.ens.Operation nwere ntọala abụọ:

    • Initializer - ịhọrọ otu klas na-arụ ọrụ interface isc.py.init.Abstract. Enwere ike iji ya buo ọrụ, modul, klaasị, na ihe ndị yiri ya. A na-eme ya otu ugboro mgbe usoro ahụ malitere.
    • PythonLib - (Linux naanị) ọ bụrụ na ị hụ njehie buut, tọọ uru ya libpython3.6m.so ma ọ bụ ọbụlagodi n'ụzọ zuru oke na ọba akwụkwọ Python.

Ịmepụta usoro azụmahịa

Enwere klas abụọ dị na-eme ka mmepe nke usoro azụmaahịa dị mfe:

  • isc.py.ens.ProcessUtils na-enye gị ohere iwepụta nkọwa sitere na mmemme na ngbanwe agbanwe.
  • isc.py.util.BPEmulator na-eme ka ọ dị mfe iji Python nwalee usoro azụmahịa. Ọ nwere ike ịme usoro azụmahịa (akụkụ Python) na usoro dị ugbu a.

Ngbanwe mgbanwe

Usoro azụmahịa niile ketara isc.py.ens.ProcessUtils, nwere ike iji usoro GetAnnotation(name) iji nweta uru nke nkọwa ọrụ site n'aha ya. Nkọwa ọrụ nwere ike ịnwe mgbanwe ndị a ga-enyocha n'akụkụ InterSystems IRIS tupu ebufe ya na Python. Nke a bụ syntax maka ngbanwe agbanwe:

  • ${class:method:arg1:...:argN} - usoro oku
  • #{expr} - Mepụta koodu n'asụsụ ObjectScript.

Ihe atụ dị na usoro azụmahịa nke ule isc.py.test.Process, dịka ọmụmaatụ, na ọrụ Correlation Matrix: Graph: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png'). N'ihe atụ a:

  • #{process.WorkDirectory} weghachite ihe onwunwe WorkDirectory ihe ahụ process, nke bụ ihe atụ nke klas isc.py.test.Process ndị ahụ. usoro azụmahịa ugbu a.
  • ${%PopulateUtils:Integer:1:100} na-akpọ usoro Integer klas %PopulateUtils, na-agafe arụmụka 1 и 100, na-eweghachite ọnụọgụ ọnụọgụ na nso 1...100.

Nyochaa usoro azụmahịa

Mmepụta nnwale na usoro azụmaahịa nnwale dị na ndabara dị ka akụkụ nke Python Gateway. Iji ha:

  1. Na njedebe OS na-agba ọsọ: pip install pandas matplotlib seaborn.
  2. Na ọnụ InterSystems IRIS, gbaa ọsọ: do ##class(isc.py.test.CannibalizationData).Import() iji mejupụta data ule.
  3. Mwepụta ngwaahịa isc.py.test.Production.
  4. zipu ụdị arịrịọ Ens.Request в isc.py.test.Process.

Ka anyị hụ otú ihe niile si arụkọ ọrụ ọnụ. Mepee isc.py.test.Process na BPL editọ:

Ụzọ Python na InterSystems IRIS

Koodu ogbugbu

Oku kacha mkpa bụ mkpochapụ koodu Python:

Ụzọ Python na InterSystems IRIS

Arịrịọ ejiri isc.py.msg.ExecutionRequest, ebe a bụ njirimara ya:

  • Code - Koodu Python.
  • SeparateLines - ma ọ ga-ekewa koodu n'ime ahịrị maka igbu. $c(10) (n) a na-eji kewaa eriri. Rịba ama na ọ dịghị atụ aro ka ịhazi ozi ahụ n'otu oge, ọrụ a bụ naanị maka nhazi def na okwu multiline yiri ya. Ọdabara 0.
  • Variables bụ ndepụta mgbanwe dị iche iche nke a ga-agbakwunye na nzaghachi.
  • Serialization - Otu esi serialize mgbanwe ndị anyị chọrọ ịlaghachi. Nhọrọ: Str, Repr, JSON, Pickle и Dill, ndabara Str.

N'ọnọdụ anyị, anyị na-edozi ihe onwunwe naanị Code, nke mere na ihe ndị ọzọ niile na-eji ụkpụrụ ndabara ha. Anyị na-ahazi ya site na ịkpọ process.GetAnnotation("Import pandas"), nke na oge ojiri gaa na-eweghachi nkọwapụta mgbe emechara mgbanwe mgbanwe. N'ikpeazụ koodu import pandas as pd a ga-agafe na Python. GetAnnotation nwere ike ịba uru maka ịnweta script Python multi-line, mana enweghị mgbochi na ụzọ a nke ịnweta koodu. Ị nwere ike ịtọ ihe onwunwe Code n'ụzọ ọ bụla adabara gị.

Inweta mgbanwe

Ihe ịma aka ọzọ na-adọrọ mmasị na-eji isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

Ụzọ Python na InterSystems IRIS

Ọ na-agbakọ Matrix Correlation n'akụkụ Python wee wepụ ihe agbanwe agbanwe corrmat laghachi na InterSystems IRIS na usoro JSON site na ịtọ ntọala arịrịọ:

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

Anyị nwere ike ịhụ nsonaazụ ya na Visual Trace:

Ụzọ Python na InterSystems IRIS

Ma ọ bụrụ na anyị chọrọ uru a na BP, enwere ike nweta ya dị ka nke a: callresponse.Variables.GetAt("corrmat").

Nnyefe data

Ọzọ, ka anyị kwuo maka ịnyefe data sitere na InterSystems IRIS na Python, arịrịọ mbufe data niile mejuputa interface ahụ. isc.py.msg.DataRequest, nke na-enye ihe ndị a:

  • Variable bụ Python variable nke edere data na ya.
  • Type - agbanwe ụdị: dataframe (pandas dataframe) ma ọ bụ list.
  • Namespace - mpaghara nke anyị na-enweta data. Akpa rọba isc.py kwesịrị ịdị na mpaghara a. Nke a nwere ike ịbụ mpaghara na-enweghị nkwado ngwaahịa.

Dabere na interface a, a na-emejuputa usoro arịrịọ 4:

  • isc.py.msg.QueryRequest - tọọ ihe onwunwe Query izipu ajụjụ SQL.
  • isc.py.msg.ClassRequest - tọọ ihe onwunwe Class ịgafe data klas.
  • isc.py.msg.TableRequest - tọọ ihe onwunwe Table iji nyefee data tebụl.
  • isc.py.msg.GlobalRequest - tọọ ihe onwunwe Global iji nyefee data n'ụwa niile.

N'ime usoro ule, lelee ọrụ ahụ RAWebe isc.py.msg.QueryRequest gosiri n'omume.

Ụzọ Python na InterSystems IRIS

Ịchekwa/iweghachi Ọdịnihu Eke Ọgba

N'ikpeazụ, anyị nwere ike ịchekwa ọnọdụ Python na InterSystems IRIS, iji mee nke a, zipu isc.py.msg.SaveRequest ya na arụmụka:

  • Mask - Naanị mgbanwe ndị na-emeju ihe nkpuchi ka echekwara. Akwadoro * и ?. Ihe atụ: "Data*, Figure?". Ọdabara *.
  • MaxLength - Ogologo kachasị ogologo nke agbanwe agbanwe. Ọ bụrụ na serialization nke mgbanwe dị ogologo, mgbe ahụ, a ga-eleghara ya anya. Tọọ na 0 iji nweta mgbanwe n'ogologo ọ bụla. Ọdabara $$$MaxStringLength.
  • Name - Aha okwu (nhọrọ).
  • Description - Nkọwa nke gburugburu (nhọrọ).

Laghachi Ens.StringResponse с Id ọnọdụ echekwara. N'ime usoro ule, lelee ọrụ ahụ Save Context.

Arịrịọ metụtara ya isc.py.msg.RestoreRequest na-ebu ọnọdụ sitere na InterSystems IRIS banye Python:

  • ContextId bụ ihe nchọta ihe gbara ya gburugburu.
  • Clear - kpochapụ ihe gbara ya gburugburu tupu iweghachi ya.

Akwụkwọ Jupyter

Akwụkwọ Jupyter bụ ngwa weebụ mepere emepe nke na-enye gị ohere ịmepụta na bipụta akwụkwọ ndetu nwere koodu, nleba anya na ederede. Ụzọ Python na-enye gị ohere ịlele na dezie usoro BPL dị ka akwụkwọ ndetu Jupyter. Rịba ama na a na-eji Python 3 executor oge niile ugbu a.

Mgbakwunye a na-eche na nkọwa nwere koodu Python ma jiri aha mmemme dị ka aha ndị bu ụzọ. Ọ ga-ekwe omume ugbu a ịmalite usoro azụmahịa PythonGateway na Jupyter Notebook. Nke a bụ ihe ga-ekwe omume:

  • Mepụta usoro azụmahịa ọhụrụ
  • Hichapụ usoro azụmahịa
  • Mepụta mmemme ọhụrụ
  • Gbanwee mmemme
  • Hichapụ mmemme

ebe a ngosi vidiyo. Na ụfọdụ nseta ihuenyo:

Explorer usoro

Ụzọ Python na InterSystems IRIS

Onye nchịkọta akụkọ

Ụzọ Python na InterSystems IRIS

ọnọdụ

  1. Ị ga-achọ InterSystems IRIS 2019.2+.
  2. Wụnye PythonGateway v0.8+ (chọrọ naanị isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints и isc.py.ens.ProcessUtils).
  3. Melite koodu ObjectScript site na ebe nchekwa.
  4. Igbu do ##class(isc.py.util.Jupyter).Install() ma soro kpaliri.

Документация.

Nchoputa

MLToolkit bụ ngwa ọrụ na-achọ ijikọ ụdị na ebe azụmahịa ka enwere ike iji ụdị arụrụ arụ ọrụ ozugbo na usoro azụmahịa gị. Python Gateway bụ akụkụ nke MLToolkit ma na-enye njikọta na asụsụ Python, na-enye gị ohere ịhazi algorithms mmụta igwe ọ bụla emebere na Python (ebe bụ isi maka ọtụtụ ndị sayensị data), jiri ọtụtụ ọba akwụkwọ emebere ngwa ngwa mepụta mgbanwe, robotic analytical AI / Ihe ngwọta ML na InterSystems ikpo okwu IRIS.

zoro

MLToolkit

Otu ndị ọrụ MLToolkit bụ ebe nchekwa GitHub nkeonwe emebere dịka akụkụ nke InterSystems ụlọọrụ GitHub. A na-agwa ndị ọrụ si mpụga bụ ndị na-etinye, mmụta, ma ọ bụ na-ejirị MLToolkit components, gụnyere Python Gateway. Otu a nwere ọtụtụ ikpe etinyere (ya na koodu isi iyi na data nnwale) n'ihe gbasara ịzụ ahịa, nrụpụta, ọgwụ na ọtụtụ ụlọ ọrụ ndị ọzọ. Iji sonyere otu onye ọrụ Toolkit, biko ziga ozi-e dị nkenke na adreesị a: [email protected] ma tinye ozi ndị a n'akwụkwọ ozi gị:

  • Aha njirimara GitHub
  • Ụlọ ọrụ (ị na-arụ ọrụ ma ọ bụ na-amụ ihe)
  • Ọnọdụ (ọnọdụ gị n'ezie na nzukọ gị, ma "Student" ma ọ bụ "Nnwere Onwe").
  • mba

Maka ndị gụrụ akụkọ ahụ ma nwee mmasị na InterSystems IRIS dị ka ikpo okwu maka ịmepụta ma ọ bụ na-akwado ọgụgụ isi na usoro mmụta igwe, anyị na-akpọ gị òkù ka ị kparịta ọnọdụ nwere ike ịmasị ụlọ ọrụ gị. Anyị ga-enyocha ngwa ngwa mkpa nke ụlọ ọrụ gị wee kpebie atụmatụ ime ihe; adreesị ozi-e kọntaktị nke ndị ọkachamara AI / ML anyị - [email protected].

isi: www.habr.com

Tinye a comment