Энэ нийтлэл нь InterSystems IRIS мэдээллийн платформд зориулсан нээлттэй эхийн олон нийтийн төсөл болох Python Gateway-ийн тухай юм. Энэхүү төсөл нь Python-д бүтээгдсэн аливаа машин сургалтын алгоритмуудыг (олон өгөгдөл судлаачдын үндсэн орчин) зохион байгуулах, олон тооны бэлэн номын сангуудыг ашиглан InterSystems IRIS платформ дээр дасан зохицох чадвартай, робот аналитик AI / ML шийдлүүдийг хурдан бүтээх боломжийг олгоно. Энэ нийтлэлд би InterSystems IRIS нь Python-д процессуудыг хэрхэн зохицуулж, хоёр талын өгөгдлийг үр дүнтэйгээр дамжуулж, ухаалаг бизнесийн үйл явцыг бий болгож болохыг харуулах болно.
Төлөвлөгөө
- Танилцуулга
- Багаж хэрэгсэл.
- Суурилуулалт
- API.
- Харилцан ажиллах чадвар.
- Бархасбадь гаригийн дэвтэр.
- Дүгнэлт.
- Холбоосууд.
- MLToolkit.
Танилцуулга
Python бол хөгжүүлэгчийн бүтээмж, код унших чадварыг сайжруулахад чиглэсэн өндөр түвшний, ерөнхий зориулалттай програмчлалын хэл юм. Энэ цуврал нийтлэлд би Python-ийг InterSystems IRIS платформ дээр ашиглах боломжуудын талаар хэлэлцэх бөгөөд энэ өгүүллийн гол зорилго нь Python хэлийг машин сургалтын загвар үүсгэх, ажиллуулах хэл болгон ашиглах явдал юм.
Машины сургалт (ML) нь хиймэл оюун ухааны аргуудын анги бөгөөд онцлог шинж чанар нь асуудлыг шууд шийдвэрлэх биш, ижил төстэй олон асуудлыг шийдвэрлэх явцад суралцах явдал юм.
Машин сургалтын алгоритмууд болон загварууд улам бүр түгээмэл болж байна. Үүнд олон шалтгаан бий, гэхдээ энэ бүхэн хүртээмжтэй байдал, энгийн байдал, практик үр дүнд хүрэхэд хүргэдэг. Кластер хийх эсвэл мэдрэлийн сүлжээг загварчлах нь шинэ технологи мөн үү?
Мэдээж үгүй, гэхдээ өнөө үед нэг загвар ажиллуулахын тулд хэдэн зуун мянган мөр код бичих шаардлагагүй болж, загвар бүтээх, ашиглах зардал улам бүр багассаар байна.
Хэрэгсэлүүд хөгжиж байна - бидэнд GUI-төвт суурилсан AI/ML хэрэгслүүд бүрэн байхгүй ч BI (код бичихээс эхлээд хүрээ болон GUI-төвт тохируулж болох шийдлүүд) зэрэг мэдээллийн системүүдийн бусад олон ангиллын талаар олж харсан ахиц дэвшил нь юм. AI/ML бий болгох хэрэгсэлд мөн ажиглагдсан. Бид код бичих үе шатыг аль хэдийн давсан бөгөөд өнөөдөр бид загвар бүтээх, сургахдаа фреймворк ашиглаж байна.
Урьдчилан бэлтгэгдсэн загварыг түгээх чадвар гэх мэт бусад сайжруулалтууд, тухайлбал эцсийн хэрэглэгч зөвхөн өөрсдийн тусгай өгөгдөл дээр загвараа сургаж дуусгах шаардлагатай болсон нь машин сургалтыг эхлүүлэхэд хялбар болгодог. Эдгээр дэвшил нь мэргэжлийн болон ерөнхийдөө компаниудын хувьд машин сурахад илүү хялбар болгодог.
Нөгөөтэйгүүр, бид улам их мэдээлэл цуглуулж байна. InterSystems IRIS гэх мэт нэгдсэн мэдээллийн платформын тусламжтайгаар эдгээр бүх мэдээллийг шууд бэлтгэж, машин сургалтын загварт оруулах болгон ашиглах боломжтой.
Клоуд руу шилжсэнээр AI/ML төслүүдийг эхлүүлэх нь урьд өмнөхөөсөө илүү хялбар болж байна. Бид өөрт хэрэгтэй нөөцөө л хэрэглэж чадна. Түүнчлэн, үүлэн платформуудын санал болгож буй параллелчлалын ачаар бид зарцуулсан цагийг хэмнэж чадна.
Гэхдээ үр дүнгийн талаар юу хэлэх вэ? Эндээс л бүх зүйл илүү төвөгтэй болдог. Загвар бүтээх олон хэрэгсэл байдаг бөгөөд би үүнийг дараа нь хэлэлцэх болно. Сайн загвар бүтээх нь амаргүй, гэхдээ дараа нь яах вэ? Бизнесийн загварыг ашигласнаар ашиг олох нь бас чухал биш ажил юм. Асуудлын үндэс нь аналитик болон гүйлгээний ажлын ачаалал, өгөгдлийн загваруудыг салгах явдал юм. Загвар өмсөгчийг сургахдаа бид үүнийг ихэвчлэн түүхэн өгөгдөл дээр үндэслэн хийдэг. Гэхдээ бүтээгдсэн загвар нь гүйлгээний өгөгдөл боловсруулах газар юм. Луйврын гүйлгээг илрүүлэх хамгийн сайн загвар нь өдөрт нэг удаа ажиллуулбал ямар ашигтай вэ? Луйварчид мөнгөө аваад аль эрт явчихсан. Бид загвараа түүхэн өгөгдөл дээр сургах хэрэгтэй, гэхдээ бидний бизнесийн үйл явц загвараар хийсэн таамаглалд нийцүүлэн ажиллахын тулд бид үүнийг шинэ ирж буй өгөгдөл дээр бодит цаг хугацаанд ашиглах хэрэгтэй.
ML Toolkit нь яг л үүнийг хийх зорилготой хэрэгслүүдийн багц юм: загварууд болон гүйлгээний орчныг нэгтгэснээр бүтээгдсэн загваруудыг бизнесийн үйл явцад шууд ашиглах боломжтой болно. Python Gateway нь ML Toolkit-ийн нэг хэсэг бөгөөд Python хэлтэй нэгтгэх боломжийг олгодог (ML Toolkit-ийн нэг хэсэг болох R Gateway нь R хэлтэй нэгдмэл байдлыг хангадагтай адил).
Хэрэгсэл
Үргэлжлүүлэхийн өмнө би бидний дараа ашиглах Python-ийн цөөн хэдэн хэрэгсэл, сангуудын талаар тайлбарлахыг хүсч байна.
технологи
- Python бол тайлбарласан, өндөр түвшний, ерөнхий зориулалттай програмчлалын хэл юм. Энэ хэлний гол давуу тал нь математик, ML, AI номын сангаас бүрдсэн том номын сан юм. ObjectScript-ийн нэгэн адил энэ нь объект хандалтат хэл боловч бүх зүйл статик бус динамикаар тодорхойлогддог. Мөн бүх зүйл объект юм. Хожмын нийтлэлүүд нь тухайн хэлийг сайн мэддэг гэж үздэг. Хэрэв та сурч эхлэхийг хүсч байвал би үүнийг эхлүүлэхийг зөвлөж байна
баримт бичиг . - Бидний дараагийн дасгалуудын хувьд тохируулна уу
Python 3.6.7 64 бит . - IDE: Би ашигладаг
PyCharm , гэхдээ ерөнхийдөө тэдмного . Хэрэв та Atelier ашигладаг бол Python хөгжүүлэгчдэд зориулсан Eclipse залгаас байдаг. Хэрэв та VS код ашиглаж байгаа бол Python-д зориулсан өргөтгөл байдаг. - Тэмдэглэлийн дэвтэр: IDE-ийн оронд та онлайн дэвтэрт скрипт бичиж, хуваалцаж болно. Тэдний хамгийн алдартай нь
Жуптер .
Номын сангууд
Машин сургалтын номын сангуудын (бүрэн бус) жагсаалт энд байна:
Номпи - нарийн тооцоолол хийх үндсэн багц.Пандас - өндөр гүйцэтгэлтэй өгөгдлийн бүтэц, өгөгдлийн шинжилгээний хэрэгслүүд.Матплотлиб - график үүсгэх.Далайн төрсөн — matplotlib дээр суурилсан өгөгдлийн дүрслэл.Склерн - машин сургалтын аргууд.XGBoost — градиентийг нэмэгдүүлэх арга зүйн хүрээнд машин сургалтын алгоритмууд.Гэнсим - NLP.Керас - мэдрэлийн сүлжээ.Тензор урсгал - машин сургалтын загварыг бий болгох платформ.ПиТорч нь Python дээр төвлөрсөн машин сургалтын загваруудыг бий болгох платформ юм.Нёка - Төрөл бүрийн загвараас PMML.
AI/ML технологи нь бизнесийг илүү үр ашигтай, дасан зохицох чадвартай болгодог. Түүнээс гадна өнөөдөр эдгээр технологийг боловсруулж, хэрэгжүүлэхэд хялбар болж байна. AI/ML технологи болон тэдгээр нь танай байгууллагын өсөлтөд хэрхэн тусалж болох талаар суралцаж эхлээрэй.
тохиргоо
Python гарцыг суулгах, ашиглах хэд хэдэн арга байдаг:
- Үйлдлийн систем
- Windows
- Linux
- Mac
- Docker
- DockerHub-ийн зургийг ашиглана уу
- Өөрийнхөө дүр төрхийг бий болго
Суулгах аргаас үл хамааран танд эх код хэрэгтэй болно. Кодыг татаж авах цорын ганц газар
Үйлдлийн систем
Хэрэв та үйлдлийн систем дээр Python Gateway суулгаж байгаа бол эхлээд (үйлдлийн системээс үл хамааран) Python-г суулгах хэрэгтэй. Үүний тулд:
Python 3.6.7 64 бит суулгана уу . Python-ийг анхдагч лавлахад суулгахыг зөвлөж байна.- Модулийг суулгана уу
dill
:pip install dill
. - ObjectScript кодыг татаж авах (жишээ нь.
do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)
) бүтээгдэхүүнтэй аль ч хэсэгт. Хэрэв та одоо байгаа бүсийг бүтээгдэхүүнийг дэмжихийг хүсч байвал дараахыг ажиллуулна уу:write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1)
. - Газар
тайлбар DLL/SO/DYLIB хавтас рууbin
таны InterSystems IRIS жишээ. Номын сангийн файл буцаж ирсэн замд байх ёстойwrite ##class(isc.py.Callout).GetLib()
.
Windows
- Орчны хувьсагч байгаа эсэхийг шалгаарай
PYTHONHOME
Python 3.6.7-г зааж байна. - Системийн орчны хувьсагч байгаа эсэхийг шалгаарай
PATH
хувьсагчийг агуулдагPYTHONHOME
(эсвэл түүний зааж буй лавлах).
Линукс (Debian/Ubuntu)
- Орчны хувьсагч байгаа эсэхийг шалгана уу
PATH
агуулж байна/usr/lib
и/usr/lib/x86_64-linux-gnu
. Файл ашиглах/etc/environment
орчны хувьсагчдыг тохируулах. - Алдаа гарсан тохиолдолд
undefined symbol: _Py_TrueStruct
тохиргоог тохируулна ууPythonLib
. бас доторReadme Асуудлыг олж засварлах хэсэг байдаг.
Mac
- Одоогоор зөвхөн Python 3.6.7-г дэмждэг
python.org . Хувьсагчийг шалгана ууPATH
.
Хэрэв та орчны хувьсагчдыг өөрчилсөн бол InterSystems бүтээгдэхүүнээ дахин эхлүүлнэ үү.
Docker
Савыг ашиглах нь хэд хэдэн давуу талтай:
- Зөөврийн чадвар
- Үр нөлөө
- Тусгаарлалтын
- Хөнгөн байдал
- Өөрчлөгдөхгүй байдал
Үүнийг шалгаарай
Python Gateway-ийн бүх бүтээц нь одоогоор контейнер дээр суурилсан байна 2019.4
.
Бэлэн зураг
Ажиллуулах: docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latest
InterSystems IRIS Community Edition-тэй Python Gateway-г татаж аваад ажиллуулах. Тэгээд л болоо.
Өөрийнхөө дүр төрхийг бий болго
Докерийн дүрсийг бүтээхийн тулд репозиторын үндсэн хэсэгт ажиллуулна уу: docker build --force-rm --tag intersystemscommunity/irispy:latest .
.
Анхдагч байдлаар, зураг нь зураг дээр тулгуурладаг store/intersystems/iris-community:2019.4.0.383.0
, гэхдээ та хувьсагчийг тохируулснаар үүнийг өөрчилж болно IMAGE
.
InterSystems IRIS-с бүтээхийн тулд: `docker build --build-arg IMAGE=store/intersystems/iris:2019.4.0.383.0 --force-rm --tag intersystemscommunity/irispy:latest ".
Үүний дараа та docker дүрсийг ажиллуулж болно:
docker run -d
-p 52773:52773
-v /<HOST-DIR-WITH-iris.key>/:/mount
--name irispy
intersystemscommunity/irispy:latest
--key /mount/iris.key
Хэрэв та InterSystems IRIS Community Edition дээр суурилсан зураг ашиглаж байгаа бол түлхүүрийг орхиж болно.
Сэтгэгдэл
- Туршилтын үйл явц
isc.py.test.Process
хэд хэдэн зургийг түр зуурын санд хадгалдаг. Та энэ замыг суулгасан лавлах руу өөрчлөхийг хүсч болно. Үүнийг хийхийн тулд тохиргоог засварлана ууWorkingDir
суулгасан лавлахыг зааж өгнө. - Терминал руу нэвтрэхийн тулд:
docker exec -it irispy sh
. - Системийн удирдлагын портал руу нэвтрэх замаар нэвтрэх
SuperUser
/SYS
. - Савыг зогсоохын тулд:
docker stop irispy && docker rm --force irispy
.
Суулгацыг шалгаж байна
Python Gateway-г суулгасны дараа энэ нь ажиллаж байгаа эсэхийг шалгах нь зүйтэй. InterSystems IRIS терминал дээр энэ кодыг ажиллуулна уу:
set sc = ##class(isc.py.Callout).Setup()
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
write var
Үр дүн нь байх ёстой: HELLO
— Python хувьсагчийн утга x
. Хэрэв буцах байдал sc
алдаа эсвэл var
хоосон, шалгах
API
Python Gateway суулгасан бөгөөд та үүнийг ажиллаж байгаа эсэхийг баталгаажууллаа. Үүнийг ашиглаж эхлэх цаг боллоо!
Python-ийн үндсэн интерфейс нь isc.py.Main
. Энэ нь дараах бүлгийн аргуудыг санал болгодог (бүгд буцах %Status
):
- Кодын гүйцэтгэл
- Мэдээлэл дамжуулах
- Охин компани
Кодын гүйцэтгэл
Эдгээр аргууд нь танд дурын Python кодыг ажиллуулах боломжийг олгодог.
SimpleString
SimpleString
- Энэ бол үндсэн арга юм. Үүнд 4 нэмэлт аргумент шаардлагатай:
code
— гүйцэтгэх кодын мөр. Мөр тэжээлийн тэмдэгт:$c(10)
.returnVariable
— буцаах хувьсагчийн нэр.serialization
- хэрхэн цуврал болгохreturnVariable
. 0 - мөр (анхдагч), 1 - давталт.result
— Утга бичигдсэн хувьсагчийн ByRef лавлагааreturnVariable
.
Дээр бид хийсэн:
set sc = ##class(isc.py.Main).SimpleString("x='HELLO'", "x", , .var).
Энэ жишээнд бид Python хувьсагчийг оноож өгдөг x
утга Hello
мөн Python хувьсагчийн утгыг буцаахыг хүсч байна x
ObjectScript хувьсагч руу var
.
ExecuteCode
ExecuteCode нь илүү аюулгүй бөгөөд хязгаарлалт багатай хувилбар юм SimpleString
.
InterSystems IRIS платформ дахь мөрүүд нь 3 тэмдэгтээр хязгаарлагддаг бөгөөд хэрэв та урт кодыг ажиллуулахыг хүсвэл threads ашиглах хэрэгтэй.
Хоёр аргументыг хүлээн зөвшөөрч байна:
code
— гүйцэтгэх Python кодын мөр эсвэл урсгал.variable
- (заавал биш) гүйцэтгэлийн үр дүнг онооноcode
энэ Python хувьсагч.
Хэрэглэх жишээ:
set sc = ##class(isc.py.Main).ExecuteCode("2*3", "y").
Энэ жишээнд бид 2-ыг 3-аар үржүүлээд үр дүнг Python хувьсагч руу бичнэ y
.
Мэдээлэл дамжуулах
Python руу болон түүнээс өгөгдөл дамжуулах.
Python -> InterSystems IRIS
InterSystems IRIS дээр Python хувьсагчийн утгыг авах 4 арга байдаг бөгөөд энэ нь танд хэрэгтэй цуваачлалаас хамаарна.
String
энгийн өгөгдлийн төрлүүд болон дибаг хийхэд зориулагдсан.Repr
энгийн объектуудыг хадгалах, дибаг хийх зориулалттай.JSON
InterSystems IRIS тал дээр өгөгдөл удирдахад хялбар.Pickle
объектуудыг хадгалах.
Эдгээр аргууд нь Python-оос хувьсагчдыг мөр эсвэл урсгал хэлбэрээр авах боломжийг олгодог.
GetVariable(variable, serialization, .stream, useString)
- авахserialization
хувьсагчvariable
вstream
Байна. ХэрэвuseString
нь 1 бөгөөд цувааг стринг дээр байрлуулсны дараа урсгал биш мөрийг буцаана.GetVariableJson(variable, .stream, useString)
— хувьсагчийн JSON цуваа авах.GetVariablePickle(variable, .stream, useString, useDill)
-хувьсагчийн Pickle (эсвэл Dill) цувааг авах.
Хувьсагчаа авахыг хичээцгээе y
.
set sc = ##class(isc.py.Main).GetVariable("y", , .val, 1)
write val
>6
InterSystems IRIS -> Python
InterSystems IRIS-ээс Python руу өгөгдөл ачаалж байна.
ExecuteQuery(query, variable, type, namespace)
- өгөгдлийн багц үүсгэдэг (pandasdataframe
буюуlist
) sql асуулгаас Python хувьсагч болгон тохируулнаvariable
. Гялгар уутisc.py
тухайн газарт бэлэн байх ёстойnamespace
- хүсэлтийг тэнд гүйцэтгэх болно.ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace)
- дэлхийн өгөгдлийг ачаалнаglobal
дэд тэмдэгтээсstart
ньend
Python дээр төрлийн хувьсагч болгонtype
:list
, эсвэл пандаdataframe
. Нэмэлт аргументуудын тайлбарmask
болонlabels
ангийн баримт бичиг, хадгалах санд байдагӨгөгдөл дамжуулах баримт бичиг .ExecuteClass(class, variable, type, start, end, properties, namespace)
- ангийн өгөгдлийг ачаалнаclass
ID-аасstart
ньend
Python дээр төрлийн хувьсагч болгонtype
:list
, эсвэл пандаdataframe
.properties
— өгөгдлийн багцад ачаалах шаардлагатай ангийн шинж чанаруудын жагсаалт (таслалаар тусгаарлагдсан). Маскийг дэмждэг*
и?
. Өгөгдмөл -*
(бүх өмч). Өмч%%CLASSNAME
үл тоомсорлосон.ExecuteTable(table, variable, type, start, end, properties, namespace)
- хүснэгтийн өгөгдлийг ачаалнаtable
ID-аасstart
ньend
Python дээр.
ExecuteQuery
— универсал (ямар ч зөв SQL асуулга Python руу шилжих болно). Гэсэн хэдий ч, ExecuteGlobal
болон түүний боодол ExecuteClass
и ExecuteTable
хэд хэдэн хязгаарлалттай ажиллах. Тэд хамаагүй хурдан (ODBC драйвераас 3-5 дахин, 20 дахин хурдан). ExecuteQuery
). Дэлгэрэнгүй мэдээллийг эндээс авна уу
Эдгээр бүх аргууд нь аль ч газраас өгөгдөл дамжуулахыг дэмждэг. Гялгар уут isc.py
зорилтот бүсэд бэлэн байх ёстой.
ExecuteQuery
ExecuteQuery(request, variable, type, namespace)
- аливаа зөв SQL асуулгын үр дүнг Python руу шилжүүлэх. Энэ бол өгөгдөл дамжуулах хамгийн удаан арга юм. Хэрэв хэрэглэвэл ExecuteGlobal
мөн түүний боодол байхгүй байна.
Аргумент:
query
- sql асуулга.variable
— өгөгдөл бичигдсэн Python хувьсагчийн нэр.type
-list
эсвэл Пандаdataframe
.namespace
- хүсэлтийг гүйцэтгэх газар.
ExecuteGlobal
ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace)
- Python хэл дээр глобалыг давах.
Аргумент:
global
- ямар ч дэлхийн нэр^
variable
— өгөгдөл бичигдсэн Python хувьсагчийн нэр.type
-list
эсвэл Пандаdataframe
.start
- дэлхийн анхны дэд тэмдэг. Заавал%Integer
.end
- дэлхийн хамгийн сүүлийн дэд тэмдэг. Заавал%Integer
.mask
- дэлхийн үнэ цэнийн маск. Маск нь дэлхийн талбаруудын тооноос богино байж болно (энэ тохиолдолд төгсгөлд байгаа талбаруудыг алгасах болно). Маскийг хэрхэн форматлах вэ:+
утгыг байгаагаар нь дамжуулна.-
утгыг алгасах.b
— Булийн төрөл (0
-False
, бусад бүх зүйл -True
).d
— Огноо ($horolog-аас, Windows дээр 1970 оноос, Линукс дээр 1900 оноос).t
— Цаг ($хоролог, шөнө дундын дараах секунд).m
— Цагийн тэмдэг (ЖИЛ-САР-ӨДРИЙН ЦАГ:МИНУТ:SECOND мөр формат).
labels
— % Баганын нэрсийн жагсаалт. Эхний элемент нь дэд тэмдгийн нэр юм.namespace
- хүсэлтийг гүйцэтгэх газар.
ExecuteClass
Боож өгнө ExecuteGlobal
. Ангийн тодорхойлолт дээр үндэслэн дуудлага бэлтгэдэг ExecuteGlobal
мөн түүнийг дууддаг.
ExecuteClass(class, variable, type, start, end, properties, namespace)
- Python дээр ангийн өгөгдлийг дамжуулах.
Аргумент:
class
- ангийн нэрvariable
— өгөгдөл бичигдсэн Python хувьсагчийн нэр.type
-list
эсвэл Пандаdataframe
.start
- эхлэх ID.end
- эцсийн Idproperties
— өгөгдлийн багцад ачаалах шаардлагатай ангийн шинж чанаруудын жагсаалт (таслалаар тусгаарлагдсан). Маскийг дэмждэг*
и?
. Өгөгдмөл -*
(бүх өмч). Өмч%%CLASSNAME
үл тоомсорлосон.namespace
- хүсэлтийг гүйцэтгэх газар.
Төрөл шинж чанараас бусад бүх шинж чанаруудыг дамжуулдаг %Date
, %Time
, %Boolean
и %TimeStamp
- тэдгээр нь тохирох Python анги руу хөрвүүлэгддэг.
Гүйцэтгэх хүснэгт
Боож өгнө ExecuteClass
. Хүснэгтийн нэрийг ангийн нэр болон дуудлага руу хөрвүүлнэ ExecuteClass
. Гарын үсэг:
ExecuteTable(table, variable, type, start, end, properties, namespace)
- хүснэгтийн өгөгдлийг Python руу дамжуулах.
Аргумент:
table
- хүснэгтийн нэр.
Бусад бүх аргументуудыг байгаагаар дамжуулнаExecuteClass
.
Тэмдэглэл
ExecuteGlobal
,ExecuteClass
иExecuteTable
адилхан хурдан ажиллана.ExecuteGlobal
-аас 20 дахин хурданExecuteQuery
том өгөгдлийн багц дээр (дамжуулах хугацаа >0.01 секунд).ExecuteGlobal
,ExecuteClass
иExecuteTable
Энэ бүтэцтэй глобалууд дээр ажиллах:^global(key) = $lb(prop1, prop2, ..., propN)
хаанаkey
- бүхэл тоо.- Хэрэгтэй
ExecuteGlobal
,ExecuteClass
иExecuteTable
дэмжигдсэн утгын хүрээ%Date
хүрээтэй тохирч байнаmktime
үйлдлийн системээс хамаарна (цонх : 1970-01-01,линукс 1900-01-01,MAC ). Ашиглах%TimeStamp
учир нь энэ хүрээнээс гадуур өгөгдөл дамжуулах эсвэл pandas dataframe ашиглах Энэ бол зөвхөн жагсаалтын хязгаарлалт юм. - Хэрэгтэй
ExecuteGlobal
,ExecuteClass
иExecuteTable
өгөгдлийн эх сурвалж (дэлхий, анги эсвэл хүснэгт) болон хувьсагчаас бусад бүх аргументууд нь сонголттой.
жишээ
Туршилтын анги
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)
Аргыг дуудна уу do ##class(isc.py.test.Person).Test()
өгөгдөл дамжуулах бүх аргууд хэрхэн ажилладагийг харах.
Туслах аргууд
GetVariableInfo(variable, serialization, .defined, .type, .length)
— хувьсагчийн тухай мэдээлэл авах: энэ нь тодорхойлогдсон эсэх, түүний ангилал, цуваачлалын урт.GetVariableDefined(variable, .defined)
- хувьсагч тодорхойлогдсон эсэх.GetVariableType(variable, .type)
- хувьсагчийн ангиллыг авна.GetStatus()
- Python тал дээрх хамгийн сүүлийн үл хамаарах зүйлийг авч устгана уу.GetModuleInfo(module, .imported, .alias)
— модулийн хувьсагч болон импортын статусыг авах.GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments)
- функцийн талаар мэдээлэл авах.
Харилцан ажиллах чадвар
Та Python Gateway-г терминалаас хэрхэн дуудахыг сурсан, одоо үүнийг үйлдвэрлэлд ашиглаж эхэлцгээе. Энэ горимд Python-той харилцах үндэс нь юм isc.py.ens.Operation
. Энэ нь бидэнд олгодог:
- Python дээр код ажиллуулна уу
- Python контекстийг хадгалах/сэргээх
- Python-оос өгөгдөл ачаалах, хүлээн авах
Үндсэндээ Python-ийн үйл ажиллагаа нь боодол юм isc.py.Main
. Үйл ажиллагаа isc.py.ens.Operation
InterSystems IRIS бүтээгдэхүүнээс Python процесстой харилцах боломжийг олгодог. Таван асуултыг дэмждэг:
isc.py.msg.ExecutionRequest
Python кодыг ажиллуулах. Буцахisc.py.msg.ExecutionResponse
гүйцэтгэлийн үр дүн болон хүссэн хувьсагчдын утгуудын хамт.isc.py.msg.StreamExecutionRequest
Python кодыг ажиллуулах. Буцахisc.py.msg.StreamExecutionResponse
гүйцэтгэлийн үр дүн болон хүссэн хувьсагчдын утгууд. Аналогisc.py.msg.ExecutionRequest
, гэхдээ мөрийн оронд урсгалыг хүлээн авч буцаана.isc.py.msg.QueryRequest
SQL хайлтыг гүйцэтгэх үр дүнг дамжуулах. БуцахEns.Response
.isc.py.msg.GlobalRequest
/isc.py.msg.ClassRequest
/isc.py.msg.TableRequest
глобал/ангилал/хүснэгт өгөгдөл дамжуулахад зориулагдсан. БуцахEns.Response
.isc.py.msg.SaveRequest
Python контекстийг хадгалах. БуцахEns.StringResponse
контекст ID-тай.-
isc.py.msg.RestoreRequest
Python контекстийг сэргээх.Цаашилбал,
isc.py.ens.Operation
хоёр тохиргоотой:Initializer
— интерфэйсийг хэрэгжүүлэх анги сонгохisc.py.init.Abstract
. Үүнийг функц, модуль, анги гэх мэт ачаалахад ашиглаж болно. Энэ нь процесс эхлэхэд нэг удаа хийгддэг.PythonLib
- (Зөвхөн Линукс) ачаалах үед алдаа гарсан тохиолдолд утгыг нь тохируулна ууlibpython3.6m.so
эсвэл тэр ч байтугай Python номын сан руу бүрэн замд.
Бизнесийн үйл явцыг бий болгох
Бизнесийн үйл явцыг хөгжүүлэхэд туслах хоёр анги байдаг:
isc.py.ens.ProcessUtils
хувьсах орлуулалт бүхий үйл ажиллагаануудаас тайлбар авах боломжийг танд олгоно.isc.py.util.BPEmulator
Python ашиглан бизнесийн үйл явцыг шалгахад хялбар болгодог. Энэ нь одоогийн үйл явцад бизнесийн үйл явцыг (Python хэсгүүд) гүйцэтгэж чадна.
Хувьсах орлуулалт
Бизнесийн бүх үйл явц нь удамшсан isc.py.ens.ProcessUtils
, аргыг хэрэглэж болно GetAnnotation(name)
үйл ажиллагааны тэмдэглэгээний утгыг нэрээр нь авах. Үйл ажиллагааны тэмдэглэгээ нь Python руу шилжихээс өмнө InterSystems IRIS тал дээр тооцоолох хувьсагчдыг агуулж болно. Хувьсагчийг орлуулах синтакс энд байна:
${class:method:arg1:...:argN}
- аргын дуудлага#{expr}
— ObjectScript хэл дээр код гүйцэтгэх.
Туршилтын бизнесийн үйл явцын жишээг үзэх боломжтой isc.py.test.Process
жишээлбэл, үйл ажиллагаанд Correlation Matrix: Graph
: f.savefig(r'#{process.WorkDirectory}SHOWCASE${%PopulateUtils:Integer:1:100}.png')
. Энэ жишээнд:
#{process.WorkDirectory}
объектын WorkDirectory шинж чанарыг буцаанаprocess
, энэ нь ангийн жишээ юмisc.py.test.Process
тэдгээр. одоогийн бизнесийн үйл явц.${%PopulateUtils:Integer:1:100}
аргыг дууддагInteger
анги%PopulateUtils
, дамжуулсан аргументууд1
и100
, муж дахь санамсаргүй бүхэл тоог буцаана1...100
.
Бизнесийн үйл явцыг турших
Туршилтын бүтээгдэхүүн болон туршилтын бизнесийн үйл явц нь Python Gateway-ийн нэг хэсэг болгон анхдагчаар байдаг. Тэдгээрийг ашиглахын тулд:
- OS терминал дээр дараахыг ажиллуулна уу:
pip install pandas matplotlib seaborn
. - InterSystems IRIS терминал дээр дараахыг ажиллуулна уу:
do ##class(isc.py.test.CannibalizationData).Import()
туршилтын өгөгдлийг бөглөх. - Бүтээгдэхүүн гаргах
isc.py.test.Production
. - Хүсэлтийн төрөл
Ens.Request
вisc.py.test.Process
.
Энэ бүхэн хэрхэн ажилладагийг хамтдаа харцгаая. Нээлттэй isc.py.test.Process
BPL редактор дээр:
Кодын гүйцэтгэл
Хамгийн чухал сорилт бол Python кодыг ажиллуулах явдал юм.
Асуулга ашигласан isc.py.msg.ExecutionRequest
, түүний шинж чанарууд энд байна:
Code
- Python код.SeparateLines
— кодыг гүйцэтгэхийн тулд мөр болгон хуваах эсэх.$c(10)
(n
) нь мөрүүдийг салгахад хэрэглэгддэг. Зурвасыг бүхэлд нь нэг дор боловсруулахыг зөвлөдөггүй, энэ функц нь зөвхөн боловсруулахад зориулагдсан гэдгийг анхаарна ууdef
ба ижил төстэй олон мөрт илэрхийллүүд. Өгөгдмөл0
.Variables
- хариуд нэмэгдэх хувьсагчийн таслалаар тусгаарлагдсан жагсаалт.Serialization
- Бидний буцаахыг хүсч буй хувьсагчдыг хэрхэн цуваа болгох вэ. Сонголтууд:Str
,Repr
,JSON
,Pickle
иDill
, анхдагчStr
.
Манай тохиолдолд бид зөвхөн өмчийг л тогтоодог Code
, тиймээс бусад бүх шинж чанарууд нь анхдагч утгуудыг ашигладаг. Бид үүнийг дуудаж тохируулсан process.GetAnnotation("Import pandas")
, энэ нь ажиллах үед хувьсагчийг орлуулсны дараа тайлбарыг буцаана. Эцсийн эцэст, код import pandas as pd
Python руу шилжих болно. GetAnnotation
Энэ нь олон мөрт Python скрипт авахад тустай байж болох ч код авах энэ аргад ямар ч хязгаарлалт байхгүй. Та үл хөдлөх хөрөнгийг тохируулж болно Code
танд тохиромжтой ямар ч аргаар.
Хувьсагч авах
Ашиглах өөр нэг сонирхолтой сорилт isc.py.msg.ExecutionRequest
- Correlation Matrix: Tabular
:
Энэ нь Python тал дээр Корреляцийн матрицыг тооцоолж, хувьсагчийг гаргаж авдаг corrmat
хүсэлтийн шинж чанарыг тохируулж JSON форматаар InterSystems IRIS руу буцна уу:
Variables
:"corrmat"
Serialization
:"JSON"
Бид үр дүнг Visual Trace дээр харж болно:
Хэрэв бидэнд АД-д энэ утга хэрэгтэй бол бид үүнийг дараах байдлаар авч болно. callresponse.Variables.GetAt("corrmat")
.
Мэдээлэл дамжуулах
Дараа нь InterSystems IRIS-ээс Python руу өгөгдөл дамжуулах талаар ярилцъя; өгөгдөл дамжуулах бүх хүсэлт нь интерфейсийг хэрэгжүүлдэг. isc.py.msg.DataRequest
дараах шинж чанаруудыг хангадаг:
Variable
— өгөгдөл бичих Python хувьсагч.Type
- хувьсагчийн төрөл:dataframe
(pandas dataframe) эсвэлlist
.Namespace
- бидний мэдээлэл хүлээн авдаг газар. Гялгар уутisc.py
энэ хэсэгт бэлэн байх ёстой. Энэ нь бүтээгдэхүүний дэмжлэггүй бүс байж болно.
Энэхүү интерфейс дээр үндэслэн 4 ангиллын хүсэлтийг хэрэгжүүлдэг.
isc.py.msg.QueryRequest
- өмчийг тохируулахQuery
SQL асуулга илгээх.isc.py.msg.ClassRequest
- өмчийг тохируулахClass
ангийн өгөгдлийг дамжуулах.isc.py.msg.TableRequest
- өмчийг тогтоохTable
хүснэгтийн өгөгдлийг дамжуулах.isc.py.msg.GlobalRequest
- өмчийг тогтоохGlobal
дэлхийн өгөгдөл дамжуулахад зориулагдсан.
Туршилтын явцад үйл ажиллагааг харна уу RAW
хаана isc.py.msg.QueryRequest
үйлдлээр харуулсан.
Python контекстийг хадгалах/сэргээх
Эцэст нь бид InterSystems IRIS-д Python контекстийг хадгалах боломжтой бөгөөд үүнийг хийхийн тулд бид илгээх болно. isc.py.msg.SaveRequest
аргументуудтай:
Mask
— Зөвхөн масктай тохирох хувьсагчдыг хадгална. Дэмжигдсэн*
и?
Байна. Жишээ нь:"Data*, Figure?"
. Өгөгдмөл*
.MaxLength
— Хадгалагдсан хувьсагчийн хамгийн их урт. Хэрэв хувьсагчийн цуваа урт бол түүнийг үл тооно. Ямар ч урттай хувьсагчийг авахын тулд 0 болгож тохируулна уу. Өгөгдмөл$$$MaxStringLength
.Name
- Контекст нэр (заавал биш).Description
- Нөхцөл байдлын тайлбар (заавал биш).
Буцах Ens.StringResponse
с Id
хадгалсан контекст. Туршилтын явцад үйл ажиллагааг харна уу Save Context
.
Холбогдох хүсэлт isc.py.msg.RestoreRequest
InterSystems IRIS-ээс Python руу контекстийг ачаална:
ContextId
- контекст танигч.Clear
- сэргээхийн өмнө контекстийг арилгах.
Jupyter тэмдэглэлийн дэвтэр
Энэхүү өргөтгөл нь тэмдэглэгээ нь Python кодыг агуулж байгаа бөгөөд үйл ажиллагааны нэрийг өмнөх гарчиг болгон ашигладаг гэж үздэг. Jupyter Notebook дээр PythonGateway бизнесийн үйл явцыг хөгжүүлэх боломжтой боллоо. Энд юу боломжтой вэ:
- Бизнесийн шинэ үйл явцыг бий болгох
- Бизнесийн үйл явцыг устгах
- Шинэ үйл ажиллагаа үүсгэх
- Үйл ажиллагааг өөрчлөх
- Үйл ажиллагааг устгах
энд
Процесс судлаач
Процесс редактор
тохиргоо
- Танд InterSystems IRIS 2019.2+ хэрэгтэй болно.
- PythonGateway v0.8+ суулгах (зөвхөн шаардлагатай
isc.py.util.Jupyter
,isc.py.util.JupyterCheckpoints
иisc.py.ens.ProcessUtils
). - Репозитороос ObjectScript кодыг шинэчилнэ үү.
- Гүйцэтгэх
do ##class(isc.py.util.Jupyter).Install()
болон зааврыг дагана уу.
үр дүн нь
MLToolkit нь загвар болон гүйлгээний орчинг хослуулах зорилготой хэрэгслүүдийн багц бөгөөд бүтээгдсэн загваруудыг бизнесийн үйл явцад шууд ашиглах боломжтой болно. Python Gateway нь MLToolkit-ийн нэг хэсэг бөгөөд Python хэлтэй нэгтгэх боломжийг олгодог бөгөөд Python-д бүтээгдсэн аливаа машин сургалтын алгоритмуудыг (олон өгөгдөл судлаачдын үндсэн орчин) зохицуулах, олон тооны бэлэн номын сангуудыг ашиглан дасан зохицох чадвартай, робот аналитик хиймэл оюун ухаан / InterSystems платформ IRIS дээрх ML шийдлүүд.
лавлагаа
Өмнөх нийтлэл Python гарц Python гарцын дээжүүд Конвергент-Аналитик Python 3.6.7 64 бит Python баримт бичиг, курсууд
MLToolkit
MLToolkit хэрэглэгчийн бүлэг нь InterSystems корпорацийн GitHub байгууллагын нэг хэсэг болгон бүтээгдсэн хувийн GitHub репозитор юм. Энэ нь Python Gateway зэрэг MLToolkit бүрэлдэхүүн хэсгүүдийг суулгаж, суралцаж, ашиглаж байгаа гадны хэрэглэгчдэд зориулагдсан болно. Тус групп нь маркетинг, үйлдвэрлэл, анагаах ухаан болон бусад олон салбарт хэрэгжсэн хэд хэдэн хэрэг (эх код болон туршилтын өгөгдөлтэй) байдаг. ML Toolkit Хэрэглэгчийн бүлэгт элсэхийн тулд дараах хаягаар богино имэйл илгээнэ үү.
- GitHub хэрэглэгчийн нэр
- Байгууллага (та ажилладаг эсвэл сурдаг)
- Албан тушаал (таны байгууллага дахь "Оюутан" эсвэл "Бие даасан" гэсэн бодит байр суурь).
- Улс
Өгүүллийг уншсан болон InterSystems IRIS-ийн хиймэл оюун ухаан, машин сургалтын хөдөлгүүрийг хөгжүүлэх, байршуулах платформ болох боломжийг сонирхож буй хүмүүст зориулж танай компанид сонирхолтой байж болох хувилбаруудын талаар ярилцахыг урьж байна. Бид танай компанийн хэрэгцээнд дүн шинжилгээ хийж, үйл ажиллагааны төлөвлөгөөгөө хамтран тодорхойлохдоо баяртай байх болно; Манай AI/ML шинжээч багийн холбоо барих имэйл хаяг –
Эх сурвалж: www.habr.com