InterSystems IRIS ရှိ Python Gateway

ဤဆောင်းပါးသည် InterSystems IRIS ဒေတာပလပ်ဖောင်းအတွက် ပွင့်လင်းအရင်းအမြစ် အသိုင်းအဝိုင်းပရောဂျက်တစ်ခုဖြစ်သည့် Python Gateway အကြောင်းဖြစ်သည်။ ဤပရောဂျက်သည် InterSystems IRIS ပလပ်ဖောင်းပေါ်တွင် လိုက်လျောညီထွေရှိသော စက်ရုပ်ပိုင်းခြားစိတ်ဖြာမှု AI/ML ဖြေရှင်းချက်များအား လျင်မြန်စွာဖန်တီးရန် ဤပရောဂျက်သည် Python (ဒေတာသိပ္ပံပညာရှင်များစွာအတွက် အဓိကပတ်ဝန်းကျင်) တွင် ဖန်တီးထားသည့် မည်သည့်စက်ပစ္စည်းသင်ယူမှုဆိုင်ရာ အယ်လဂိုရီသမ်များကိုမဆို စုစည်းနိုင်စေပါသည်။ ဤဆောင်းပါးတွင်၊ InterSystems IRIS သည် Python တွင် လုပ်ငန်းစဉ်များကို စီမံကွပ်ကဲနိုင်ပုံ၊ နှစ်လမ်းသွားဒေတာကို ထိထိရောက်ရောက် ဆက်သွယ်နိုင်ပြီး အသိဉာဏ်ရှိသော စီးပွားရေးလုပ်ငန်းစဉ်များကို ဖန်တီးနိုင်ပုံကို ပြသပါမည်။

စီမံကိန်း

  1. နိဒါန်း။
  2. ကိရိယာများ။
  3. တပ်ဆင်
  4. API ကို။
  5. အပြန်အလှန်လုပ်ဆောင်နိုင်မှု။
  6. Jupyter Notebook
  7. ကောက်ချက်။
  8. လင့်များ။
  9. MLToolkit

နိဒါန်း

Python သည် developer များ၏ ကုန်ထုတ်စွမ်းအားနှင့် ကုဒ်ဖတ်နိုင်မှုကို မြှင့်တင်ရန် ရည်ရွယ်သည့် အဆင့်မြင့်၊ ယေဘုယျရည်ရွယ်ချက် ပရိုဂရမ်းမင်းဘာသာစကားတစ်ခုဖြစ်သည်။ ဤဆောင်းပါးအတွဲလိုက်တွင်၊ InterSystems IRIS ပလပ်ဖောင်းတွင် Python ကိုအသုံးပြုခြင်း၏ဖြစ်နိုင်ချေများကို ဤဆောင်းပါး၏အဓိကအာရုံမှာ Python ကိုအသုံးပြုခြင်းနှင့် စက်သင်ယူမှုပုံစံများကိုဖန်တီးခြင်းနှင့်လုပ်ဆောင်ခြင်းအတွက်ဘာသာစကားအဖြစ်အသုံးပြုခြင်းဖြစ်သည် ။

စက်သင်ယူခြင်း (ML) သည် ဉာဏ်ရည်တုနည်းလမ်းများ၏ အတန်းအစားဖြစ်ပြီး ပြဿနာတစ်ခု၏ တိုက်ရိုက်ဖြေရှင်းချက်မဟုတ်သော်လည်း အလားတူပြဿနာများစွာကို ဖြေရှင်းသည့်လုပ်ငန်းစဉ်တွင် သင်ယူခြင်း၏ လက္ခဏာရပ်ဖြစ်သည်။

စက်သင်ယူမှု အယ်လဂိုရီသမ်များနှင့် မော်ဒယ်များသည် ပို၍အဖြစ်များလာသည်။ ယင်းအတွက် အကြောင်းရင်းများစွာရှိသော်လည်း ၎င်းအားလုံးသည် သုံးစွဲနိုင်မှု၊ ရိုးရှင်းမှုနှင့် လက်တွေ့ကျသောရလဒ်များရရှိရန် ဆင်းသက်လာသည်။ အစုလိုက်ဖွဲ့ခြင်း သို့မဟုတ် အာရုံကြောကွန်ရက်ကိုပင် မော်ဒယ်ပြုလုပ်ခြင်းသည် နည်းပညာအသစ်တစ်ခုလား။

ဟုတ်ပါတယ်၊ ဒါပေမယ့် အခုခေတ်မှာတော့ မော်ဒယ်တစ်ခုတည်းကိုလည်ပတ်ဖို့အတွက် ကုဒ်လိုင်းပေါင်း ရာနဲ့ချီပြီးရေးဖို့ မလိုအပ်တော့ဘဲ မော်ဒယ်လ်တွေကို ဖန်တီးအသုံးပြုခြင်းအတွက် ကုန်ကျစရိတ်က နည်းပါးလာပါတယ်။

ကိရိယာများသည် ပြောင်းလဲတိုးတက်နေသည် - ကျွန်ုပ်တို့တွင် GUI-ဗဟိုပြု AI/ML ကိရိယာများ အပြည့်အဝမရှိသော်လည်း၊ BI (ကုဒ်ရေးသားခြင်းမှ frameworks နှင့် GUI-ဗဟိုပြုပြင်ဆင်နိုင်သော ဖြေရှင်းနည်းများ) ကဲ့သို့သော အခြားသော အချက်အလက်စနစ်များ၏ တိုးတက်မှုကို ကျွန်ုပ်တို့ မြင်တွေ့ခဲ့ရသည်မှာ၊ AI/ML ဖန်တီးခြင်းအတွက် ကိရိယာများတွင်လည်း တွေ့ရှိရသည်။ ကျွန်ုပ်တို့သည် ကုဒ်ရေးခြင်းအဆင့်ကို ကျော်ဖြတ်ပြီးဖြစ်ပြီး ယနေ့တွင် မော်ဒယ်များကို တည်ဆောက်ရန်နှင့် လေ့ကျင့်ရန်အတွက် မူဘောင်များကို အသုံးပြုပါသည်။

သုံးစွဲသူသည် ၎င်းတို့၏ သီးခြားဒေတာများကို မော်ဒယ်ကို အပြီးသတ်လေ့ကျင့်ရန် လိုအပ်သည့် အကြိုလေ့ကျင့်ထားသည့် မော်ဒယ်ကို ဖြန့်ဝေနိုင်မှုကဲ့သို့သော အခြားတိုးတက်မှုများသည် စက်သင်ယူမှုဖြင့် စတင်ရန် ပိုမိုလွယ်ကူစေသည်။ ဤတိုးတက်မှုများသည် ပရော်ဖက်ရှင်နယ်များအတွက်ရော ကုမ္ပဏီများအတွက်ရော ယေဘူယျအားဖြင့် စက်သင်ယူခြင်းအတွက် များစွာလွယ်ကူစေသည်။

အခြားတစ်ဖက်တွင်၊ ကျွန်ုပ်တို့သည် ဒေတာပိုမိုစုဆောင်းနေပါသည်။ InterSystems IRIS ကဲ့သို့ စုစည်းထားသည့် ဒေတာပလပ်ဖောင်းဖြင့်၊ ဤအချက်အလက်အားလုံးကို ချက်ချင်းပြင်ဆင်နိုင်ပြီး စက်သင်ယူမှုမော်ဒယ်များအတွက် ထည့်သွင်းမှုအဖြစ် အသုံးပြုနိုင်ပါသည်။

Cloud သို့ ပြောင်းရွှေ့ခြင်းဖြင့် AI/ML ပရောဂျက်များကို စတင်ခြင်းသည် ယခင်ကထက် ပိုမိုလွယ်ကူလာသည်။ ကျွန်ုပ်တို့လိုအပ်သော အရင်းအမြစ်များကိုသာ စားသုံးနိုင်ပါသည်။ ထို့အပြင်၊ cloud ပလပ်ဖောင်းများမှ ပေးဆောင်ထားသည့် ပြိုင်တူပေါင်းစပ်မှုကြောင့် အချိန်ကုန်သက်သာစေနိုင်သည်။

ဒါပေမယ့် ရလဒ်တွေကကော။ ဤနေရာတွင် အရာများ ပိုမိုရှုပ်ထွေးလာသည်။ မော်ဒယ်များတည်ဆောက်ရန်အတွက် ကိရိယာများစွာရှိသည်၊ ကျွန်ုပ်နောက်တွင် ဆွေးနွေးပါမည်။ မော်ဒယ်ကောင်းတစ်ခု တည်ဆောက်ဖို့ဆိုတာ မလွယ်ပေမယ့် နောက်တစ်ခုက ဘာလဲ။ လုပ်ငန်းပုံစံတစ်ခုကို အသုံးပြုခြင်းမှ အမြတ်ငွေရှာခြင်းသည် အသေးအဖွဲမဟုတ်သော အလုပ်တစ်ခုလည်းဖြစ်သည်။ ပြဿနာ၏အရင်းခံမှာ ခွဲခြမ်းစိတ်ဖြာခြင်းနှင့် အရောင်းအ၀ယ်လုပ်သောအလုပ်များ နှင့် ဒေတာပုံစံများကို ခွဲခြားထားခြင်းဖြစ်ပါသည်။ မော်ဒယ်တစ်ခုကို လေ့ကျင့်တဲ့အခါ၊ သမိုင်းအချက်အလက်နဲ့ လုပ်လေ့ရှိပါတယ်။ သို့သော် တည်ဆောက်ထားသော မော်ဒယ်အတွက် နေရာသည် ငွေပေးငွေယူ ဒေတာကို လုပ်ဆောင်နေပါသည်။ ၎င်းကို တစ်ရက်လျှင် တစ်ကြိမ် လုပ်ဆောင်ပါက လိမ်လည်မှု စုံစမ်းခြင်း မော်ဒယ်သည် အကောင်းဆုံးဖြစ်သနည်း။ လိမ်လည်လှည့်စားသူတွေဟာ ပိုက်ဆံတွေ အများကြီးကျန်ခဲ့တာ ကြာပါပြီ။ ကျွန်ုပ်တို့သည် မော်ဒယ်ကို သမိုင်းဆိုင်ရာ အချက်အလက်များတွင် လေ့ကျင့်ရန် လိုအပ်သော်လည်း၊ ကျွန်ုပ်တို့၏ လုပ်ငန်းလုပ်ငန်းစဉ်များသည် မော်ဒယ်၏ ခန့်မှန်းချက်များအတိုင်း လုပ်ဆောင်နိုင်စေရန် ဝင်လာသည့် ဒေတာအသစ်တွင် ၎င်းကို အချိန်နှင့်တပြေးညီ အသုံးပြုရန် လိုအပ်ပါသည်။

ML Toolkit သည် ၎င်းကိုလုပ်ဆောင်ရန် ရည်ရွယ်သည့် ကိရိယာအစုံအလင်ဖြစ်သည်- မော်ဒယ်များနှင့် အရောင်းအ၀ယ်ပတ်ဝန်းကျင်ကို ပေါင်းစည်းကာ တည်ဆောက်ထားသော မော်ဒယ်များကို သင့်လုပ်ငန်းလုပ်ငန်းစဉ်များတွင် တိုက်ရိုက်အသုံးပြုနိုင်စေရန် ရည်ရွယ်ပါသည်။ Python Gateway သည် ML Toolkit ၏ တစ်စိတ်တစ်ပိုင်းဖြစ်ပြီး Python ဘာသာစကားနှင့် ပေါင်းစပ်ပေးသည် (ML Toolkit ၏ တစ်စိတ်တစ်ပိုင်းဖြစ်သည့် R Gateway နှင့် ဆင်တူသည်)။

ကိရိယာများ

ဆက်လက်မလုပ်ဆောင်မီ၊ နောက်ပိုင်းတွင် ကျွန်ုပ်တို့အသုံးပြုမည့် Python ကိရိယာများနှင့် စာကြည့်တိုက်အချို့ကို ဖော်ပြလိုပါသည်။

နည်းပညာ

  • Python သည် အဓိပ္ပာယ်ဖွင့်ဆိုနိုင်သော အဆင့်မြင့်မားပြီး ယေဘုယျရည်ရွယ်ချက် ပရိုဂရမ်းမင်းဘာသာစကားတစ်ခုဖြစ်သည်။ ဘာသာစကား၏ အဓိကအားသာချက်မှာ သင်္ချာ၊ ML နှင့် AI စာကြည့်တိုက်များ၏ ကြီးမားသောစာကြည့်တိုက်ဖြစ်သည်။ ObjectScript ကဲ့သို့ပင်၊ ၎င်းသည် အရာဝတ္ထုကို ဦးတည်သော ဘာသာစကားတစ်ခုဖြစ်သော်လည်း အရာအားလုံးကို တည်ငြိမ်မှုထက် ဒိုင်နမစ်ဖြင့် သတ်မှတ်သည်။ ထို့အတူ အရာအားလုံးသည် အရာဝတ္ထုတစ်ခုဖြစ်သည်။ နောက်ပိုင်းဆောင်းပါးများသည် ဘာသာစကားနှင့် ရင်းနှီးကျွမ်းဝင်မှုရှိသည်ဟု ယူဆသည်။ စတင်လေ့လာချင်တယ်ဆိုရင်တော့ စပြီး အကြံပေးချင်ပါတယ်။ စာရွက်စာတမ်း.
  • ကျွန်ုပ်တို့၏ နောက်ဆက်တွဲလေ့ကျင့်ခန်းများအတွက် သတ်မှတ်ပါ။ Python 3.6.7 64 bit ဖြစ်ပါတယ်။.
  • IDE: ကျွန်တော်သုံးပါတယ်။ PyCharmဒါပေမယ့် ယေဘူယျအားဖြင့် သူတို့က много. အကယ်၍ သင်သည် Atelier ကိုအသုံးပြုပါက၊ Python developer များအတွက် Eclipse plugin တစ်ခုရှိသည်။ အကယ်၍ သင်သည် VS Code ကိုအသုံးပြုပါက၊ Python အတွက် extension တစ်ခုရှိသည်။
  • မှတ်စုစာအုပ်- IDE အစား၊ အွန်လိုင်းမှတ်စုစာအုပ်များတွင် သင်၏ script များကို ရေးသားမျှဝေနိုင်ပါသည်။ အဲဒီအထဲက လူကြိုက်အများဆုံးကတော့ ဂျူပီတာ.

စာကြည့်တိုက်များ

ဤသည်မှာ စက်သင်ယူမှု စာကြည့်တိုက်များ (မကုန်ခန်းနိုင်သော) စာရင်းဖြစ်သည်-

  • ထုံကျဉ် - တိကျသောတွက်ချက်မှုများအတွက် အခြေခံအထုပ်တစ်ခု။
  • ပန်ဒါ — စွမ်းဆောင်ရည်မြင့်မားသော ဒေတာဖွဲ့စည်းပုံများနှင့် ဒေတာခွဲခြမ်းစိတ်ဖြာမှုကိရိယာများ။
  • matplotlib - ဂရပ်များဖန်တီးခြင်း။
  • ပင်လယ်ပင်လယ် - matplotlib ကို အခြေခံ၍ ဒေတာကို ပုံဖော်ခြင်း။
  • Sklearn ပါ။ - စက်သင်ယူမှုနည်းလမ်းများ။
  • XGBoost — gradient boosting methodology ၏ဘောင်အတွင်း စက်သင်ယူမှု အယ်လဂိုရီသမ်များ။
  • Gensim - NLP
  • ကရား - မသေခင်။
  • ရက်စက်မှု — စက်သင်ယူမှုပုံစံများကို ဖန်တီးရန်အတွက် ပလပ်ဖောင်းတစ်ခု။
  • Pythorch Python ကို အဓိကထား၍ စက်သင်ယူမှုပုံစံများကို ဖန်တီးရန်အတွက် ပလပ်ဖောင်းတစ်ခုဖြစ်သည်။
  • ညိုကာ - မော်ဒယ်အမျိုးမျိုးမှ PMML။

AI/ML နည်းပညာများသည် လုပ်ငန်းကို ပိုမိုထိရောက်ပြီး လိုက်လျောညီထွေဖြစ်စေသည်။ ထို့အပြင် ယနေ့ခေတ်တွင် အဆိုပါနည်းပညာများသည် ဖွံ့ဖြိုးတိုးတက်ရန်နှင့် အကောင်အထည်ဖော်ရန် ပိုမိုလွယ်ကူလာသည်။ AI/ML နည်းပညာများအကြောင်းနှင့် ၎င်းတို့သည် သင့်အဖွဲ့အစည်းကို တိုးတက်အောင် မည်သို့ကူညီပေးနိုင်သည်ကို စတင်လေ့လာပါ။

ustanovka

Python Gateway ကို ထည့်သွင်းအသုံးပြုရန် နည်းလမ်းများစွာ ရှိပါသည်။

  • operating system ကို
    • Windows ကို
    • Linux ကို
    • မက်
  • Docker
    • DockerHub မှ ပုံတစ်ပုံကို သုံးပါ။
    • သင့်ကိုယ်ပိုင်အသွင်အပြင်ဖန်တီးပါ။

တပ်ဆင်မှုနည်းလမ်း မည်သို့ပင်ရှိစေကာမူ သင်သည် အရင်းအမြစ်ကုဒ်ကို လိုအပ်မည်ဖြစ်သည်။ ကုဒ်ကိုဒေါင်းလုဒ်လုပ်ရန်တစ်ခုတည်းသောနေရာဖြစ်သည်။ စာမျက်နှာထုတ်ဝေသည်။. ၎င်းတွင် စမ်းသပ်ထားသော တည်ငြိမ်သော ထုတ်ဝေမှုများပါ၀င်သည်၊ နောက်ဆုံးထွက်ကို ယူလိုက်ပါ။ လောလောဆယ်မှာ 0.8 ဖြစ်ပေမယ့် အချိန်ကြာလာတာနဲ့အမျှ အသစ်တွေလည်း ရှိလာမှာပါ။ သိုလှောင်မှုကို ပုံတူပွား/ဒေါင်းလုဒ်မလုပ်ပါနှင့်၊ နောက်ဆုံးထွက်ရှိမှုကို ဒေါင်းလုဒ်လုပ်ပါ။

operating system ကို

အကယ်၍ သင်သည် လည်ပတ်မှုစနစ်တစ်ခုတွင် Python Gateway ကို ထည့်သွင်းနေပါက ဦးစွာ (လည်ပတ်မှုစနစ်နှင့် မသက်ဆိုင်ဘဲ) Python ကို ထည့်သွင်းရန် လိုအပ်ပါသည်။ ဒီအတွက်:

  1. Python 3.6.7 64 bit ကို install လုပ်ပါ။. မူရင်းလမ်းညွှန်တွင် Python ကို ထည့်သွင်းရန် အကြံပြုထားသည်။
  2. module ကို install လုပ်ပါ။ dill: pip install dill.
  3. ObjectScript ကုဒ်ကို ဒေါင်းလုဒ်လုပ်ပါ (ဥပမာ။ do $system.OBJ.ImportDir("C:InterSystemsReposPythoniscpy", "*.cls", "c",,1)) ထုတ်ကုန်နှင့်အတူမည်သည့်နေရာသို့မဆို။ ထုတ်ကုန်များကို ပံ့ပိုးရန် ရှိပြီးသားဧရိယာကို လိုချင်ပါက၊ လုပ်ဆောင်ရန်- write ##class(%EnsembleMgr).EnableNamespace($Namespace, 1).
  4. နေရာ DLL/SO/DYLIB ခေါ်ဆိုမှု folder သို့ bin သင်၏ InterSystems IRIS ဥပမာ။ ဒစ်ဂျစ်တိုက်ဖိုင်ကို ပြန်ပေးသည့်လမ်းကြောင်းတွင် ရနိုင်ရပါမည်။ write ##class(isc.py.Callout).GetLib().

Windows ကို

  1. ပတ်​ဝန်းကျင်​ကို ​ပြောင်းလဲနိုင်​​အောင်​လုပ်​ပါ။ PYTHONHOME Python 3.6.7 ကိုညွှန်ပြသည်။
  2. စနစ်ပတ်ဝန်းကျင် ကိန်းရှင်ဖြစ်ကြောင်း သေချာပါစေ။ PATH ကိန်းရှင်တစ်ခုပါရှိသည်။ PYTHONHOME (သို့မဟုတ် ၎င်းညွှန်ပြသော လမ်းညွှန်)။

Linux (Debian/Ubuntu)

  1. ပတ်ဝန်း ကျင် ပြောင်းလဲမှု ရှိမရှိ စစ်ဆေးပါ။ PATH ဒါဟာပါရှိသည် /usr/lib и /usr/lib/x86_64-linux-gnu. ဖိုင်ကိုသုံးပါ။ /etc/environment ပတ်ဝန်းကျင်ပြောင်းလဲမှုများကို သတ်မှတ်ရန်။
  2. အမှားအယွင်းများရှိလျှင် undefined symbol: _Py_TrueStruct setting ကိုသတ်မှတ်ပါ။ PythonLib. တွင်လည်း Readme Troubleshooting အပိုင်းရှိပါတယ်။

မက်

  1. လက်ရှိတွင် Python 3.6.7 ကိုသာ ပံ့ပိုးထားသည်။ python.org. variable ကိုစစ်ဆေးပါ။ PATH.

အကယ်၍ သင်သည် ပတ်ဝန်းကျင် ကိန်းရှင်များကို ပြောင်းလဲပါက သင်၏ InterSystems ထုတ်ကုန်ကို ပြန်လည်စတင်ပါ။

Docker

ကွန်တိန်နာများကို အသုံးပြုခြင်းတွင် အားသာချက်များစွာရှိသည်။

  • ပေါ့ပါးသွက်လက်သည်။
  • ထိရောက်မှု
  • သီးခြားထားခြင်း
  • ပေါ့ပါးမှု
  • မပြောင်းလဲနိုင်ခြင်း

ဒါကို စစ်ဆေးကြည့်ပါ။ ဆောင်းပါးစီးရီးများ Docker နှင့် InterSystems ထုတ်ကုန်များကို အသုံးပြုခြင်းအကြောင်း နောက်ထပ်အချက်အလက်များအတွက်။

Python Gateway တည်ဆောက်မှုအားလုံးသည် လက်ရှိတွင် ကွန်တိန်နာအခြေခံဖြစ်သည်။ 2019.4.

အဆင်သင့်ပုံ

ပြေး- docker run -d -p 52773:52773 --name irispy intersystemscommunity/irispy-community:latestInterSystems IRIS Community Edition ဖြင့် Python Gateway ကိုဒေါင်းလုဒ်လုပ်ပြီး run ရန်။ ဒါပါပဲ။

သင့်ကိုယ်ပိုင်အသွင်အပြင်ဖန်တီးပါ။

docker ပုံတစ်ခုတည်ဆောက်ရန်၊ repository ၏ root တွင် run သည်- 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" ကို run ပါ။

အဲဒါပြီးရင်တော့ docker image ကို run နိုင်ပါတယ်။

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 Mounted directory ကို သတ်မှတ်ခြင်း။
  • Terminal run ကိုဝင်ရောက်ရန်- docker exec -it irispy sh.
  • အကောင့်ဝင်ခြင်းဖြင့် System Management Portal သို့ဝင်ရောက်ပါ။ SuperUser/SYS.
  • ကွန်တိန်နာကို ရပ်ရန်၊ ပြေးပါ- docker stop irispy && docker rm --force irispy.

တပ်ဆင်မှုကို စစ်ဆေးခြင်း။

Python Gateway ကို သင်ထည့်သွင်းပြီးသည်နှင့် ၎င်းသည် အလုပ်လုပ်နေကြောင်း စစ်ဆေးရန် ထိုက်တန်ပါသည်။ InterSystems IRIS terminal တွင် ဤကုဒ်ကို လုပ်ဆောင်ပါ-

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

ရလဒ်သည်- HELLO - Python variable တန်ဖိုး x. အခြေနေ ပြန်လာလျှင် sc error သို့မဟုတ် var ဗလာ၊ စစ်ဆေးပါ။ Readme - ပြဿနာဖြေရှင်းခြင်းကဏ္ဍ.

API ကို

Python Gateway ကို ထည့်သွင်းထားပြီး ၎င်းသည် အလုပ်လုပ်ကြောင်း သင်စစ်ဆေးပြီးဖြစ်သည်။ စတင်အသုံးပြုရန် အချိန်တန်ပါပြီ။
Python ၏ အဓိက interface သည် isc.py.Main. ၎င်းသည် အောက်ပါနည်းလမ်းအုပ်စုများကို ပံ့ပိုးပေးသည် (အားလုံးပြန်ပေးသည်။ %Status):

  • Code Execution
  • ဒေတာလွှဲပြောင်းခြင်း
  • လက်အောက်ခံ

Code Execution

ဤနည်းလမ်းများသည် သင့်အား မထင်သလို Python ကုဒ်ကို လုပ်ဆောင်နိုင်စေပါသည်။

SimpleString

SimpleString - ဒါက အဓိက နည်းလမ်းပါ။ ၎င်းသည် ရွေးချယ်နိုင်သော အကြောင်းပြချက် 4 ခု ယူသည်-

  • code - လုပ်ဆောင်ရန် ကုဒ်လိုင်း။ မျဉ်းစာအက္ခရာ- $c(10).
  • returnVariable - ပြန်ရန် variable ၏အမည်။
  • serialization - နံပါတ်စဉ်တပ်နည်း returnVariable. 0 — string (မူလ)၊ 1 — repr။
  • result — ByRef သည် တန်ဖိုးရေးထားသော variable ကို ရည်ညွှန်းသည်။ returnVariable.

အထက်တွင် ကျွန်ုပ်တို့ ပြုလုပ်ခဲ့သည်-

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

ဤဥပမာတွင်၊ ကျွန်ုပ်တို့သည် Python variable တစ်ခုသို့ သတ်မှတ်ပေးသည်။ x အဓိပ်ပါယျ Hello Python variable ၏တန်ဖိုးကို ပြန်ပေးလိုပါသည်။ x ObjectScript variable သို့ var.

ExecuteCode

ExecuteCode သည် ပိုမိုလုံခြုံပြီး ကန့်သတ်မှုနည်းသော အခြားရွေးချယ်စရာတစ်ခုဖြစ်သည်။ SimpleString.
InterSystems IRIS ပလပ်ဖောင်းရှိ စာကြောင်းများကို စာလုံးရေ 3 လုံးတွင် ကန့်သတ်ထားပြီး ပိုရှည်သော ကုဒ်အပိုင်းကို လုပ်ဆောင်လိုပါက စာတွဲများကို အသုံးပြုရန် လိုအပ်ပါသည်။
ငြင်းချက်နှစ်ခုကို လက်ခံသည်-

  • code - လုပ်ဆောင်ရန် Python ကုဒ်လိုင်း သို့မဟုတ် stream ။
  • variable — (ချန်လှပ်ထားနိုင်သည်) ကွပ်မျက်မှုရလဒ်ကို သတ်မှတ်ပေးသည်။ code ဤ Python variable

အသုံးပြုပုံ ဥပမာ-

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

ဤဥပမာတွင်၊ ကျွန်ုပ်တို့သည် 2 နှင့် 3 ကို မြှောက်ပြီး ရလဒ်ကို Python variable တစ်ခုသို့ ရေးပါ။ y.

ဒေတာလွှဲပြောင်းခြင်း

ဒေတာကို Python သို့နှင့် ဖြတ်သန်းပါ။

Python -> InterSystems IRIS

သင်လိုအပ်သော နံပါတ်စဉ်ပေါ်မူတည်၍ InterSystems IRIS ရှိ Python variable ၏တန်ဖိုးကို ရယူရန် နည်းလမ်း 4 ခု ရှိပါသည်။

  • String ရိုးရှင်းသောဒေတာအမျိုးအစားများနှင့် အမှားရှာပြင်ခြင်းအတွက်။
  • Repr ရိုးရှင်းသော အရာဝတ္ထုများကို သိမ်းဆည်းရန်နှင့် အမှားရှာပြင်ခြင်းအတွက်
  • JSON InterSystems IRIS ဘက်တွင် လွယ်ကူသော ဒေတာကို ကိုင်တွယ်ရန်။
  • Pickle အရာဝတ္ထုများကိုသိမ်းဆည်းရန်။

ဤနည်းလမ်းများသည် သင့်အား Python မှ variable များကို string သို့မဟုတ် stream များအဖြစ် ရယူနိုင်သည်။

  • GetVariable(variable, serialization, .stream, useString) - ရယူပါ။ serialization variable ပါ variable в stream။ လျှင် useString သည် 1 ဖြစ်ပြီး အမှတ်စဉ်ကို ကြိုးတစ်ချောင်းပေါ်တွင် ချထားသည်၊ ထို့နောက် ကြိုးတစ်ချောင်းကို ပြန်ပေးကာ stream မဟုတ်ပါ။
  • GetVariableJson(variable, .stream, useString) — variable တစ်ခု၏ JSON အမှတ်စဉ်ကို ရယူပါ။
  • GetVariablePickle(variable, .stream, useString, useDill) - ပြောင်းလဲမှုတစ်ခု၏ Pickle (သို့မဟုတ် Dill) အမှတ်စဉ်ကိုရယူပါ။

ကျွန်ုပ်တို့၏ variable ကိုရယူရန်ကြိုးစားကြပါစို့ 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) - ဒေတာအစုံကိုဖန်တီးသည် (ပန်ဒါများ dataframe သို့မဟုတ် list) sql query မှ ၎င်းကို Python variable အဖြစ် သတ်မှတ်သည်။ variable. ပလပ်စတစ်အိတ် isc.py ဧရိယာအတွင်းရရှိနိုင်ရမည်။ namespace - အဆိုပါတောင်းဆိုချက်ကိုအကောင်အထည်ဖော်လိမ့်မည်။
  • ExecuteGlobal(global, variable, type, start, end, mask, labels, namespace) - ကမ္ဘာလုံးဆိုင်ရာဒေတာကိုတင်ပါ။ global subscript မှ start သို့ end Python တွင် type variable အဖြစ် type: listဒါမှမဟုတ် ပန်ဒါ dataframe. ရွေးချယ်နိုင်သော အကြောင်းပြချက်များ၏ ဖော်ပြချက် mask နှင့် labels class documentation နဲ့ repository မှာ ရနိုင်ပါတယ်။ ဒေတာလွှဲပြောင်းခြင်းစာရွက်စာတမ်း.
  • ExecuteClass(class, variable, type, start, end, properties, namespace) - အတန်းဒေတာကိုတင်သည်။ class id မှ start သို့ end Python တွင် type variable အဖြစ် type: listဒါမှမဟုတ် ပန်ဒါ dataframe. properties — ဒေတာအစုံတွင် တင်ရန် လိုအပ်သော အတန်းဂုဏ်သတ္တိများ၏ စာရင်း (ကော်မာဖြင့် ပိုင်းခြားထားသည်)။ မျက်နှာဖုံးများကို ပံ့ပိုးထားသည်။ * и ?. ပုံသေ - * (ဂုဏ်သတ္တိအားလုံး)။ ပစ္စည်းဥစ္စာ %%CLASSNAME လျစ်လျူရှုထားသည်။
  • ExecuteTable(table, variable, type, start, end, properties, namespace) - ဇယားဒေတာကိုတင်သည်။ table id မှ start သို့ end Python တွင်။

ExecuteQuery — universal (မှန်ကန်သော SQL query မှန်သမျှ Python သို့ ပေးပို့ပါမည်)။ သို့သော်၊ ExecuteGlobal ၎င်း၏ထုပ်ပိုးမှုများ၊ ExecuteClass и ExecuteTable ကန့်သတ်ချက်များစွာဖြင့် အလုပ်လုပ်ပါ။ ၎င်းတို့သည် များစွာမြန်သည် (ODBC driver ထက် ၃-၅ ဆ ပိုမြန်ပြီး အဆ ၂၀ ပိုမြန်သည်။ ExecuteQuery) ပိုမိုသိရှိလိုပါက ဒေတာလွှဲပြောင်းခြင်းစာရွက်စာတမ်း.
ဤနည်းလမ်းများအားလုံးသည် မည်သည့်နေရာမှမဆို ဒေတာလွှဲပြောင်းခြင်းကို ပံ့ပိုးပေးပါသည်။ ပလပ်စတစ်အိတ် isc.py ပစ်မှတ်ဧရိယာတွင် ရနိုင်ရမည်။

ExecuteQuery

ExecuteQuery(request, variable, type, namespace) — မှန်ကန်သော SQL query ၏ရလဒ်များကို Python သို့လွှဲပြောင်းခြင်း။ ဤသည်မှာ အနှေးကွေးဆုံး ဒေတာလွှဲပြောင်းမှုနည်းလမ်းဖြစ်သည်။ ရှိရင်သုံးပါ။ ExecuteGlobal ၎င်း၏ထုပ်ပိုးမှုများကို မရရှိနိုင်ပါ။

အငြင်းပွားမှုများ:

  • query - sql မေးမြန်းမှု။
  • variable — ဒေတာကိုရေးသားသည့် Python variable ၏အမည်။
  • type - list သို့မဟုတ် Pandas dataframe.
  • namespace - တောင်းဆိုချက်ကို အကောင်အထည်ဖော်မည့် ဧရိယာ။

ExecuteGlobal

ExecuteGlobal(global, variable, type, start, end, mask, labelels, namespace) - Python တွင် ဂလိုဘယ်ကိုဖြတ်သန်းပါ။

အငြင်းပွားမှုများ:

  • global - ကမ္ဘာလုံးဆိုင်ရာအမည်မပါဘဲ ^
  • variable — ဒေတာကိုရေးသားသည့် Python variable ၏အမည်။
  • type - list သို့မဟုတ် Pandas dataframe.
  • start - ကမ္ဘာလုံးဆိုင်ရာ၏ပထမဆုံးစာရင်းသွင်းမှု။ သေချာပေါက် %Integer.
  • end - ဂလိုဘယ်၏နောက်ဆုံးစာရင်း။ သေချာပေါက် %Integer.
  • mask - ကမ္ဘာလုံးဆိုင်ရာတန်ဖိုးမျက်နှာဖုံး။ မျက်နှာဖုံးသည် ကမ္ဘာလုံးဆိုင်ရာ အကွက်အရေအတွက်ထက် ပိုတိုနိုင်သည် (ထိုအခြေအနေတွင် အဆုံးတွင် အကွက်များကို ကျော်သွားပါမည်)။ Mask ဖော်မတ်လုပ်နည်း
    • + တန်ဖိုးအတိုင်းဖြတ်သန်းပါ။
    • - တန်ဖိုးကို ကျော်သွားပါ။
    • b — Boolean အမျိုးအစား (0 - Falseကျန်တာအားလုံး- True).
    • d — ရက်စွဲ ( $horolog မှ Windows တွင် 1970 မှ 1900 မှ Linux ) ။
    • t — အချိန် ($ horolog၊ သန်းခေါင်ကျော် စက္ကန့်)။
    • m — အချိန်တံဆိပ်နှိပ်ခြင်း (YEAR-MONTH-DAY HOUR:MINUTE:SECOND)။
  • labels — ကော်လံအမည်များစာရင်း။ ပထမဒြပ်စင်သည် subscript ၏အမည်ဖြစ်သည်။
  • namespace - တောင်းဆိုချက်ကို အကောင်အထည်ဖော်မည့် ဧရိယာ။

ExecuteClass

ခြုံ ExecuteGlobal. အတန်း၏ အဓိပ္ပါယ်ကို အခြေခံ၍ ခေါ်ဆိုမှုကို ပြင်ဆင်သည်။ ExecuteGlobal သူ့ကိုခေါ်တယ်။

ExecuteClass(class, variable, type, start, end, properties, namespace) - Python တွင် class data ကိုဖြတ်သန်းခြင်း။

အငြင်းပွားမှုများ:

  • class - အတန်းအမည်
  • variable — ဒေတာကိုရေးသားသည့် Python variable ၏အမည်။
  • type - list သို့မဟုတ် Pandas dataframe.
  • start - စတင် ID ။
  • end - နောက်ဆုံး ID
  • properties — ဒေတာအစုံတွင် တင်ရန် လိုအပ်သော အတန်းဂုဏ်သတ္တိများ၏ စာရင်း (ကော်မာဖြင့် ပိုင်းခြားထားသည်)။ မျက်နှာဖုံးများကို ပံ့ပိုးထားသည်။ * и ?. ပုံသေ - * (ဂုဏ်သတ္တိအားလုံး)။ ပစ္စည်းဥစ္စာ %%CLASSNAME လျစ်လျူရှုထားသည်။
  • namespace - တောင်းဆိုချက်ကို အကောင်အထည်ဖော်မည့် ဧရိယာ။

အမျိုးအစားဂုဏ်သတ္တိများမှလွဲ၍ ဂုဏ်သတ္တိများအားလုံးကို ကျော်ဖြတ်ထားသည်။ %Date, %Time, %Boolean и %TimeStamp - ၎င်းတို့ကို သက်ဆိုင်ရာ Python အတန်းများအဖြစ်သို့ ပြောင်းလဲထားသည်။

ExecuteTable

ခြုံ ExecuteClass. ဇယားအမည်ကို အတန်းအမည်နှင့် ခေါ်ဆိုမှုများကို ဘာသာပြန်ပေးသည်။ ExecuteClass. လက်မှတ်-

ExecuteTable(table, variable, type, start, end, properties, namespace) - ဇယားဒေတာကို Python သို့ပေးပို့ခြင်း။

အငြင်းပွားမှုများ:

  • table - ဇယားအမည်။
    အခြားသော ငြင်းခုံမှုအားလုံးကို ပေးလိုသည့်အတိုင်း ကျော်လွန်သွားပါသည်။ ExecuteClass.

မှတ်ချက်တွေ

  • ExecuteGlobal, ExecuteClass и ExecuteTable အညီအမျှ အမြန်အလုပ်လုပ်ပါ။
  • ExecuteGlobal ထက် အဆ ၂၀ ပိုမြန်တယ်။ ExecuteQuery ကြီးမားသောဒေတာအတွဲများပေါ်တွင် (လွှဲပြောင်းချိန်> 0.01 စက္ကန့်)။
  • ExecuteGlobal, ExecuteClass и ExecuteTable ဤဖွဲ့စည်းပုံဖြင့် ကမ္ဘာလုံးဆိုင်ရာ အလုပ်များ- ^global(key) = $lb(prop1, prop2, ..., propN) ဘယ်မှာ key - ကိန်းပြည့်။
  • အတွက် ExecuteGlobal, ExecuteClass и ExecuteTable ပံ့ပိုးထားသော တန်ဖိုးများ %Date အပိုင်းအခြားနှင့် ကိုက်ညီသည်။ mktime OS ပေါ်တွင်မူတည်သည် (ပြတင်းပေါက်: ၈၅-၆၁-၉၀၊ linux ကို 1900-01-01, မက်) သုံးပါ။ %TimeStampဤအကွာအဝေးပြင်ပတွင် ဒေတာလွှဲပြောင်းရန် သို့မဟုတ် ပန်ဒါဒေတာဘောင်ကို အသုံးပြုရခြင်းမှာ ဤသည်မှာ စာရင်းသီးသန့်ကန့်သတ်ချက်ဖြစ်သည်။
  • အတွက် ExecuteGlobal, ExecuteClass и ExecuteTable ဒေတာအရင်းအမြစ် (ကမ္ဘာလုံးဆိုင်ရာ၊ အတန်းအစား သို့မဟုတ် ဇယား) မှလွဲ၍ အငြင်းအခုံများအားလုံးသည် စိတ်ကြိုက်ရွေးချယ်နိုင်သည်။

ဥပမာ

စာမေးပွဲအတန်း isc.py.test.Person ဒေတာလွှဲပြောင်းခြင်းဆိုင်ရာ ရွေးချယ်စရာများအားလုံးကို သရုပ်ပြသည့် နည်းလမ်းတစ်ခုပါရှိသည်။

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) — variable အကြောင်း အချက်အလက်ကို ရယူပါ- ၎င်းကို သတ်မှတ်သည်ဖြစ်စေ၊ ၎င်း၏ အတန်းအစား နှင့် အမှတ်စဉ် အရှည်။
  • GetVariableDefined(variable, .defined) - variable ကို သတ်မှတ်ခြင်းရှိမရှိ၊
  • GetVariableType(variable, .type) - variable ၏အတန်းကိုရယူပါ။
  • GetStatus() - Python ဘက်မှ နောက်ဆုံးခြွင်းချက်အား ရယူပြီး ဖယ်ရှားပါ။
  • GetModuleInfo(module, .imported, .alias) — module variable နှင့် import status ကိုရယူပါ။
  • GetFunctionInfo(function, .defined, .type, .docs, .signature, .arguments) - လုပ်ဆောင်ချက်နှင့်ပတ်သက်သောအချက်အလက်များကိုရယူပါ။

ပူးပေါင်းဆောင်ရွက်နိုင်မှု

သင်သည် terminal မှ Python Gateway ကိုမည်သို့ခေါ်ဆိုရမည်ကို သင်လေ့လာပြီးပြီ၊ ယခု ၎င်းကို ထုတ်လုပ်ရေးတွင် စတင်အသုံးပြုလိုက်ကြပါစို့။ ဤမုဒ်တွင် Python နှင့် အပြန်အလှန်ဆက်ဆံခြင်းအတွက် အခြေခံအချက်မှာ isc.py.ens.Operation. ၎င်းသည် ကျွန်ုပ်တို့အား ခွင့်ပြုသည်-

  • Python တွင်ကုဒ်ကိုလုပ်ဆောင်ပါ။
  • Python အကြောင်းအရာကို သိမ်းဆည်း/ပြန်ယူပါ။
  • Python မှ ဒေတာကို တင်ပြီး လက်ခံရယူပါ။

အခြေခံအားဖြင့်၊ Python လုပ်ဆောင်ချက်သည် wrapper over ဖြစ်သည်။ isc.py.Main. လည်ပတ်မှု isc.py.ens.Operation InterSystems IRIS ထုတ်ကုန်များမှ Python လုပ်ငန်းစဉ်နှင့် အပြန်အလှန်တုံ့ပြန်နိုင်စွမ်းကို ပံ့ပိုးပေးသည်။ မေးခွန်းငါးခုကို ထောက်ခံသည်-

  • isc.py.msg.ExecutionRequest Python ကုဒ်ကို လုပ်ဆောင်ရန်။ ပြန်လာသည် isc.py.msg.ExecutionResponse execution ရလဒ်နှင့် တောင်းဆိုထားသော variable များ၏ တန်ဖိုးများ။
  • isc.py.msg.StreamExecutionRequest Python ကုဒ်ကို လုပ်ဆောင်ရန်။ ပြန်လာသည် isc.py.msg.StreamExecutionResponse execution ၏ရလဒ်နှင့်တောင်းဆိုထားသော variable များ၏တန်ဖိုးများ။ လက်တံ isc.py.msg.ExecutionRequestဒါပေမယ့် strings တွေအစား stream တွေကို လက်ခံပြီး ပြန်ပေးပါတယ်။
  • isc.py.msg.QueryRequest SQL Query ကိုလုပ်ဆောင်ခြင်း၏ရလဒ်ကိုထုတ်လွှင့်ရန်။ ပြန်လာသည် 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 context ကိုပြန်လည်ရယူရန်။

    ထို့အပြင်ခုနှစ်, isc.py.ens.Operation ဆက်တင်နှစ်ခုရှိသည်-

    • Initializer - အင်တာဖေ့စ်ကို အကောင်အထည်ဖော်သည့် အတန်းကို ရွေးချယ်ခြင်း။ isc.py.init.Abstract. လုပ်ဆောင်ချက်များ၊ မော်ဂျူးများ၊ အတန်းများ၊ စသည်တို့ကို တင်ရန် အသုံးပြုနိုင်သည်။ လုပ်ငန်းစဉ်စတင်သောအခါတွင်တစ်ကြိမ်လုပ်ဆောင်သည်။
    • PythonLib - (Linux တစ်ခုတည်းသာ) တင်သည့်အခါ အမှားအယွင်းများတွေ့ပါက ၎င်း၏တန်ဖိုးကို သတ်မှတ်ပါ။ libpython3.6m.so သို့မဟုတ် Python စာကြည့်တိုက်သို့ လမ်းကြောင်းအပြည့်အစုံတွင်ပင်။

စီးပွားရေးလုပ်ငန်းစဉ်များဖန်တီးခြင်း။

စီးပွားရေးလုပ်ငန်းစဉ်များ ဖွံ့ဖြိုးတိုးတက်လာစေရန် အထောက်အကူဖြစ်စေမည့် အတန်းနှစ်ခုရှိသည်။

  • isc.py.ens.ProcessUtils ပြောင်းလဲနိုင်သော အစားထိုးခြင်းဖြင့် လှုပ်ရှားမှုများမှ မှတ်ချက်များကို ထုတ်ယူနိုင်စေပါသည်။
  • isc.py.util.BPEmulator Python ဖြင့် လုပ်ငန်းဆောင်ရွက်ချက်များကို စမ်းသပ်ရန် လွယ်ကူစေသည်။ ၎င်းသည် လက်ရှိလုပ်ငန်းစဉ်တွင် လုပ်ငန်းလုပ်ငန်းစဉ် (Python အစိတ်အပိုင်းများ) ကို လုပ်ဆောင်နိုင်သည်။

ပြောင်းလဲနိုင်သော အစားထိုးမှု

စီးပွားရေးလုပ်ငန်း စဉ်များအားလုံးမှ အမွေဆက်ခံသည်။ isc.py.ens.ProcessUtils, နည်းလမ်းကိုသုံးနိုင်သည်။ GetAnnotation(name) ၎င်း၏အမည်ဖြင့် လုပ်ဆောင်မှုမှတ်စာတန်ဖိုးကို ရယူရန်။ လုပ်ဆောင်ချက်မှတ်ချက်တွင် Python သို့မပေးပို့မီ InterSystems IRIS ဘက်တွင် တွက်ချက်မည့် variable များ ပါဝင်နိုင်သည်။ ဤသည်မှာ ပြောင်းလဲနိုင်သော အစားထိုးမှုအတွက် အထားအသိုဖြစ်သည်

  • ${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} method ကိုခေါ်သည်။ Integer класса %PopulateUtilsငြင်းခုံသွားတာ၊ 1 и 100အပိုင်းအခြားရှိ ကျပန်းကိန်းပြည့်ကို ပြန်ပေးသည်။ 1...100.

လုပ်ငန်းစဥ်ကို စမ်းသပ်ပါ။

စမ်းသပ်ထုတ်ကုန်များနှင့် စမ်းသပ်မှုလုပ်ငန်းလုပ်ငန်းစဉ်များကို Python Gateway ၏ တစ်စိတ်တစ်ပိုင်းအနေဖြင့် မူရင်းအတိုင်း ရရှိနိုင်ပါသည်။ ၎င်းတို့ကိုအသုံးပြုရန်-

  1. OS terminal တွင်၊ run: pip install pandas matplotlib seaborn.
  2. InterSystems IRIS terminal တွင်၊ run- do ##class(isc.py.test.CannibalizationData).Import() စမ်းသပ်ဒေတာဖြည့်ရန်။
  3. ထုတ်ကုန်များကိုစတင်ပါ။ isc.py.test.Production.
  4. တောင်းဆိုမှုအမျိုးအစားကို ပေးပို့ပါ။ Ens.Request в isc.py.test.Process.

ဘယ်လိုအလုပ်လုပ်လဲဆိုတာ အတူတူကြည့်လိုက်ရအောင်။ ဖွင့်သည်။ isc.py.test.Process BPL တည်းဖြတ်သူတွင်-

InterSystems IRIS ရှိ Python Gateway

Code Execution

အရေးအကြီးဆုံးစိန်ခေါ်မှုမှာ Python ကုဒ်ကိုလုပ်ဆောင်ခြင်းဖြစ်သည်

InterSystems IRIS ရှိ Python Gateway

Query ကိုသုံးတယ်။ isc.py.msg.ExecutionRequestဤသည်မှာ ၎င်း၏ ဂုဏ်သတ္တိများ ဖြစ်သည်-

  • Code - Python ကုဒ်။
  • SeparateLines - ကုဒ်ကို အကောင်အထည်ဖော်ရန်အတွက် စာကြောင်းများ ခွဲမလား။ $c(10) (n) ကြိုးများကို ခွဲရန် အသုံးပြုသည်။ မက်ဆေ့ဂျ်တစ်ခုလုံးကို တစ်ကြိမ်တည်းလုပ်ဆောင်ရန် အကြံပြုထားခြင်းမဟုတ်ကြောင်း ကျေးဇူးပြု၍ မှတ်သားထားပါ၊ ဤလုပ်ဆောင်ချက်သည် လုပ်ဆောင်ရန်သာ ရည်ရွယ်ပါသည်။ def နှင့် ဆင်တူသော multiline expressions များ။ ပုံသေ 0.
  • Variables — တုံ့ပြန်မှုတွင် ထည့်မည့် ကော်မာ-ခြားထားသော ကိန်းရှင်များစာရင်း။
  • Serialization - ကျွန်ုပ်တို့ပြန်လိုသော variable များကို စီစဥ်ပုံလုပ်နည်း။ ရွေးချယ်စရာများ- Str, Repr, JSON, Pickle и Dillပုံသေ Str.

ကျွန်ုပ်တို့၏အခြေအနေတွင်၊ ကျွန်ုပ်တို့သည် ပိုင်ဆိုင်မှုကိုသာ သတ်မှတ်သည်။ Codeထို့ကြောင့် အခြားသော ဂုဏ်သတ္တိများအားလုံးသည် မူရင်းတန်ဖိုးများကို အသုံးပြုပါသည်။ ခေါ်ဆိုခြင်းဖြင့် ကျွန်ုပ်တို့ သတ်မှတ်ပါသည်။ process.GetAnnotation("Import pandas")runtime တွင် variable အစားထိုးခြင်းကို လုပ်ဆောင်ပြီးနောက် မှတ်ချက်များကို ပြန်ပေးသည်။ ပြီးနောက်ရှိသမျှတို့, ကုဒ် import pandas as pd Python သို့ ပေးပို့ပါမည်။ GetAnnotation Multi-line Python scripts များရယူရန်အတွက် အသုံးဝင်နိုင်သော်လည်း ဤကုဒ်ရယူသည့်နည်းလမ်းတွင် ကန့်သတ်ချက်များမရှိပါ။ ပိုင်ဆိုင်မှုကို သင်သတ်မှတ်နိုင်သည်။ Code ဘယ်နည်းနဲ့မဆို သင့်အတွက် အဆင်ပြေပါတယ်။

ကိန်းရှင်များရယူခြင်း။

နောက်ထပ်စိတ်ဝင်စားဖို့ကောင်းတဲ့စိန်ခေါ်မှုကိုအသုံးပြုပါ။ isc.py.msg.ExecutionRequest - Correlation Matrix: Tabular:

InterSystems IRIS ရှိ Python Gateway

၎င်းသည် Python ဘက်ရှိ Correlation Matrix ကိုတွက်ချက်ပြီး variable ကို ထုတ်ယူသည်။ corrmat တောင်းဆိုမှုဂုဏ်သတ္တိများကို သတ်မှတ်ခြင်းဖြင့် InterSystems IRIS သို့ JSON ဖော်မတ်သို့ ပြန်သွားရန်။

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

ရလဒ်များကို Visual Trace တွင် မြင်တွေ့နိုင်သည်-

InterSystems IRIS ရှိ Python Gateway

BP တွင် ဤတန်ဖိုးကို လိုအပ်ပါက၊ ဤကဲ့သို့ ရနိုင်သည်- callresponse.Variables.GetAt("corrmat").

ဒေတာလွှဲပြောင်းခြင်း

နောက်တစ်ခု၊ InterSystems IRIS မှ Python သို့ ဒေတာလွှဲပြောင်းခြင်းအကြောင်း ဆွေးနွေးကြပါစို့။ ဒေတာလွှဲပြောင်းမှုအတွက် တောင်းဆိုချက်အားလုံးသည် အင်တာဖေ့စ်ကို အကောင်အထည်ဖော်ရန် isc.py.msg.DataRequestအောက်ပါဂုဏ်သတ္တိများကို ပေးဆောင်သည်။

  • Variable - ဒေတာကိုရေးသားသည့် Python variable တစ်ခု။
  • Type — ပြောင်းလဲနိုင်သောအမျိုးအစား dataframe (ပန်ဒါဒေတာဘောင်) သို့မဟုတ် list.
  • Namespace - ကျွန်ုပ်တို့ဒေတာလက်ခံရရှိသည့်နေရာ။ ပလပ်စတစ်အိတ် isc.py ဤဧရိယာတွင်ရရှိနိုင်သင့်သည်။ ၎င်းသည် ထုတ်ကုန်ပံ့ပိုးမှုမရှိဘဲ ဧရိယာဖြစ်နိုင်သည်။

ဤအင်တာဖေ့စ်ကိုအခြေခံ၍ တောင်းဆိုမှုအတန်းအစား 4 ခုကိုအကောင်အထည်ဖော်သည်-

  • isc.py.msg.QueryRequest - ပစ္စည်းဥစ္စာကို သတ်မှတ်ခြင်း။ Query SQL query ပေးပို့ရန်။
  • isc.py.msg.ClassRequest - ပစ္စည်းဥစ္စာကို သတ်မှတ်ခြင်း။ Class အတန်းဒေတာဖြတ်သန်းရန်။
  • isc.py.msg.TableRequest - ပစ္စည်းဥစ္စာကို သတ်မှတ်ခြင်း။ Table ဇယားဒေတာလွှဲပြောင်းရန်။
  • isc.py.msg.GlobalRequest - ပစ္စည်းဥစ္စာကို သတ်မှတ်ခြင်း။ Global ကမ္ဘာလုံးဆိုင်ရာဒေတာလွှဲပြောင်းမှုအတွက်။

စမ်းသပ်မှုလုပ်ငန်းစဉ်တွင်၊ လှုပ်ရှားမှုကိုကြည့်ပါ။ RAWဘယ်မှာ isc.py.msg.QueryRequest လုပ်ဆောင်ချက်တွင် ပြသထားသည်။

InterSystems IRIS ရှိ Python Gateway

Python အကြောင်းအရာကို သိမ်းဆည်းခြင်း/ပြန်လည်ရယူခြင်း

နောက်ဆုံးတွင်၊ ကျွန်ုပ်တို့သည် InterSystems IRIS တွင် Python အကြောင်းအရာကို သိမ်းဆည်းနိုင်သည်၊ ၎င်းကိုလုပ်ဆောင်ရန်အတွက် ကျွန်ုပ်တို့ပေးပို့ပါမည်။ isc.py.msg.SaveRequest ငြင်းခုံမှုများနှင့်

  • Mask — Mask နှင့် ကိုက်ညီသော ကိန်းရှင်များကိုသာ သိမ်းဆည်းထားသည်။ ထောက်ပံ့သည်။ * и ?. ဥပမာ- "Data*, Figure?"... ပုံသေ *.
  • MaxLength - သိမ်းဆည်းထားသော ကိန်းရှင်၏ အမြင့်ဆုံးအရှည်။ ကိန်းရှင်တစ်ခု၏ နံပါတ်စဉ်ဆက်ခြင်းသည် ပိုရှည်ပါက၊ ၎င်းကို လျစ်လျူရှုပါမည်။ အလျားအလိုက် ကိန်းရှင်များကို ရယူရန် 0 ဟု သတ်မှတ်ပါ။ ပုံသေ $$$MaxStringLength.
  • Name — အကြောင်းအရာအမည် (ချန်လှပ်ထားနိုင်သည်)။
  • Description — အကြောင်းအရာဖော်ပြချက် (ချန်လှပ်ထားနိုင်သည်)။

ပြန်လာသည် Ens.StringResponse с Id သိမ်းဆည်းထားသော အကြောင်းအရာ။ စမ်းသပ်မှုလုပ်ငန်းစဉ်တွင်၊ လှုပ်ရှားမှုကိုကြည့်ပါ။ Save Context.

ဆက်စပ်တောင်းဆိုမှု isc.py.msg.RestoreRequest InterSystems IRIS မှ အကြောင်းအရာကို Python သို့ တင်သည်-

  • ContextId - ဆက်စပ်သတ်မှတ်မှု။
  • Clear - ပြန်လည်မွမ်းမံခြင်းမပြုမီ အကြောင်းအရာကို ရှင်းလင်းပါ။

ဂျူပီတာမှတ်စုစာအုပ်

ဂျူပီတာမှတ်စုစာအုပ် ကုဒ်၊ အမြင်အာရုံနှင့် စာသားများပါရှိသော မှတ်စုစာအုပ်များကို ဖန်တီးထုတ်ဝေရန် ခွင့်ပြုသည့် open source ဝဘ်အက်ပလီကေးရှင်းတစ်ခုဖြစ်သည်။ Python Gateway သည် Jupyter Notebook ပုံစံဖြင့် BPL လုပ်ငန်းစဉ်များကို ကြည့်ရှု တည်းဖြတ်နိုင်စေပါသည်။ ပုံမှန် Python 3 executor ကို လက်ရှိအသုံးပြုနေကြောင်း သတိပြုပါ။

မှတ်ချက်များတွင် Python ကုဒ်ပါဝင်ပြီး လုပ်ဆောင်ချက်အမည်များကို ရှေ့ခေါင်းစဉ်များအဖြစ် အသုံးပြုသည်ဟု ဤတိုးချဲ့မှုမှ ယူဆသည်။ Jupyter Notebook တွင် PythonGateway လုပ်ငန်းလုပ်ငန်းစဉ်များကို ဖော်ဆောင်နိုင်ပါပြီ။ ဤတွင် ဖြစ်နိုင်သည်များ-

  • လုပ်ငန်းလုပ်ငန်းစဉ်အသစ်များ ဖန်တီးပါ။
  • လုပ်ငန်းလုပ်ငန်းစဉ်များကို ဖျက်ပါ။
  • လှုပ်ရှားမှုအသစ်များဖန်တီးပါ။
  • လှုပ်ရှားမှုများကို ပြောင်းလဲပါ။
  • လှုပ်ရှားမှုများကို ဖျက်ပါ။

ဒီမှာ ဒီမို ဗီဒီယို. နှင့် အချို့သော ဖန်သားပြင်ဓာတ်ပုံများ-

လုပ်ငန်းစဉ် Explorer

InterSystems IRIS ရှိ Python Gateway

လုပ်ငန်းစဉ်တည်းဖြတ်သူ

InterSystems IRIS ရှိ Python Gateway

ustanovka

  1. InterSystems IRIS 2019.2+ လိုအပ်ပါမည်။
  2. PythonGateway v0.8+ ကို ထည့်သွင်းပါ (လိုအပ်သည်သာ isc.py.util.Jupyter, isc.py.util.JupyterCheckpoints и isc.py.ens.ProcessUtils).
  3. သိုလှောင်မှုမှ ObjectScript ကုဒ်ကို အပ်ဒိတ်လုပ်ပါ။
  4. စီရင် do ##class(isc.py.util.Jupyter).Install() လမ်းညွှန်ချက်များကို လိုက်နာပါ။

စာရွက်စာတမ်းများ.

တွေ့ရှိချက်များ

MLToolkit သည် မော်ဒယ်များနှင့် အရောင်းအ၀ယ်ပတ်ဝန်းကျင်ကို ပေါင်းစပ်ရန် ရည်ရွယ်ချက်ဖြစ်ပြီး တည်ဆောက်ထားသော မော်ဒယ်များကို သင့်လုပ်ငန်းလုပ်ငန်းစဉ်များတွင် တိုက်ရိုက်အသုံးပြုနိုင်စေရန် ရည်ရွယ်ပါသည်။ Python Gateway သည် MLToolkit ၏ တစ်စိတ်တစ်ပိုင်းဖြစ်ပြီး Python ဘာသာစကားဖြင့် ပေါင်းစပ်ပေးထားပြီး Python (ဒေတာသိပ္ပံပညာရှင်များစွာအတွက် အဓိကပတ်ဝန်းကျင်) တွင် ဖန်တီးထားသည့် မည်သည့်စက်သင်ယူမှုဆိုင်ရာ algorithms များကိုမဆို စုစည်းနိုင်စေမည့် အဆင်သင့်လုပ်ထားသည့် စာကြည့်တိုက်အများအပြားကို အသုံးပြု၍ လျင်မြန်စွာ လိုက်လျောညီထွေဖြစ်အောင်၊ စက်ရုပ်ပိုင်းဆိုင်ရာ AI / InterSystems ပလပ်ဖောင်း IRIS ရှိ ML ဖြေရှင်းချက်များ။

ကိုးကား

MLToolkit

MLToolkit အသုံးပြုသူအုပ်စုသည် InterSystems ကော်ပိုရိတ် GitHub အဖွဲ့အစည်း၏ တစ်စိတ်တစ်ပိုင်းအဖြစ် ဖန်တီးထားသော သီးသန့် GitHub သိုလှောင်မှုတစ်ခုဖြစ်သည်။ ၎င်းသည် Python Gateway အပါအဝင် MLToolkit အစိတ်အပိုင်းများကို ထည့်သွင်း၊ လေ့လာရန် သို့မဟုတ် အသုံးပြုပြီးသား ပြင်ပအသုံးပြုသူများအတွက် ရည်ရွယ်ပါသည်။ အဖွဲ့တွင် စျေးကွက်ချဲ့ထွင်မှု၊ ကုန်ထုတ်လုပ်မှု၊ ဆေးဝါးနှင့် အခြားစက်မှုလုပ်ငန်းအများအပြားတွင် (အရင်းအမြစ်ကုဒ်နှင့် စမ်းသပ်မှုဒေတာနှင့်အတူ) အကောင်အထည်ဖော်ဆောင်ရွက်ထားသော အမှုအခင်းများစွာရှိသည်။ ML Toolkit အသုံးပြုသူအုပ်စုတွင် ပါဝင်ရန်၊ ကျေးဇူးပြု၍ အောက်ပါလိပ်စာသို့ အီးမေးလ်တိုတစ်စောင် ပေးပို့ပါ- [အီးမေးလ်ကိုကာကွယ်ထားသည်] သင့်စာထဲတွင် အောက်ပါအချက်အလက်များကို ထည့်သွင်းပါ။

  • GitHub အသုံးပြုသူအမည်
  • အဖွဲ့အစည်း (သင်အလုပ်သို့မဟုတ်လေ့လာနေ)
  • ရာထူး ("ကျောင်းသား" သို့မဟုတ် "တစ်သီးပုဂ္ဂလ" ဖြင့် သင့်အဖွဲ့အစည်းရှိ သင်၏အမှန်တကယ်ရာထူး)။
  • ပြည်

ဆောင်းပါးကိုဖတ်ရှုပြီး InterSystems IRIS ၏စွမ်းရည်များကို စိတ်ဝင်စားသူများအတွက် ဥာဏ်ရည်တုနှင့် စက်သင်ယူမှုအင်ဂျင်များကို တီထွင်ဖန်တီးခြင်း သို့မဟုတ် လက်ခံဆောင်ရွက်ပေးခြင်းအတွက် ပလပ်ဖောင်းတစ်ခုအနေဖြင့် သင့်လုပ်ငန်းအတွက် စိတ်ဝင်စားဖွယ်ဖြစ်နိုင်သော အခြေအနေများကို ဆွေးနွေးရန် သင့်အား ဖိတ်ခေါ်အပ်ပါသည်။ သင့်ကုမ္ပဏီ၏လိုအပ်ချက်များကိုခွဲခြမ်းစိတ်ဖြာပြီးလုပ်ဆောင်မှုအစီအစဉ်တစ်ခုကိုပူးပေါင်းဆုံးဖြတ်ရန်ကျွန်ုပ်တို့ပျော်ရွှင်ပါမည်။ ကျွန်ုပ်တို့၏ AI/ML ကျွမ်းကျင်သူအဖွဲ့၏ ဆက်သွယ်ရန် အီးမေးလ်လိပ်စာ – [အီးမေးလ်ကိုကာကွယ်ထားသည်].

source: www.habr.com

မှတ်ချက် Add