รวมการทำงาน Oracle Analytics กับ Oracle Cloud Infrastructure Functions

ใช้งานฟังก์ชันของ Oracle Analytics ร่วมกับ Oracle Cloud Infrastructure (OCI) เพื่อให้คุณสามารถใช้ฟังก์ชันต่างๆ ในโฟลว์ข้อมูลเพื่อแปลงรูปแบบข้อมูลได้

ข้อมูลเกี่ยวกับการใช้ฟังก์ชัน OCI ใน Oracle Analytics

คุณสามารถแปลงรูปแบบข้อมูลใน Oracle Analytics โดยใช้ฟังก์ชันที่สร้างใน OCI ตัวอย่างเช่น คุณอาจใช้ฟังก์ชันการแปลงภาษาเพื่อแปลงค่าข้อความภาษาอังกฤษเป็นภาษาสเปนหรือเยอรมัน

คุณต้องรีจิสเตอร์ฟังก์ชัน OCI ใน Oracle Analytics ก่อน จากนั้นผู้ใช้ Oracle Analytics ที่มีสิทธิ์ผู้ดูแลระบบ BI Service หรือผู้สร้างเนื้อหา DV จะสามารถใช้โฟลว์ฟังก์ชันในโฟลว์ข้อมูล

เกี่ยวกับการคอนฟิเกอร์ฟังก์ชัน OCI ที่จะใช้ใน Oracle Analytics

สร้างฟังก์ชันในคอนโซล OCI เพื่อให้คุณสามารถใช้ฟังก์ชันเพื่อแปลงรูปแบบข้อมูลในโฟลว์ข้อมูล Oracle Analytics

ข้อมูลเกี่ยวกับการรีจิสเตอร์ฟังก์ชัน OCI ใน Oracle Analytics

เมื่อคุณรีจิสเตอร์ฟังก์ชัน OCI ใน Oracle Analytics หากไดอะล็อก เลือกฟังก์ชัน เป็นสีเทา ให้ตรวจสอบว่ามีการคอนฟิเกอร์ด้วยแท็ก oac-compatible และมีการเรียกใช้ด้วยค่า funcMode ที่ถูกต้อง
คำอธิบาย GUID-6FE05B2C-5352-4953-998F-D967B6BA1891-default.png มีดังนี้
.png

ข้อมูลเกี่ยวกับการคอนฟิเกอร์ฟังก์ชัน OCI ที่จะใช้ใน Oracle Analytics

ฟังก์ชัน OCI ที่คุณต้องการใช้ใน Oracle Analytics ต้องมีแท็ก oac-compatible และรหัสฟังก์ชันต้องประกอบด้วยตัวแปร funcMode คอนฟิเกอร์การตั้งค่าเหล่านี้ในคอนโซล OCI:

  • oac-compatible - เพิ่มแท็กรูปแบบอิสระในฟังก์ชันด้วยชื่อ oac-compatible และตั้งค่าเป็น trueคำอธิบาย GUID-6DDD2A98-7F8D-45D7-9110-9643C2128A84-default.png มีดังนี้
    .png
  • funcMode - ประกอบด้วยตัวแปร funcMode ในรหัสฟังก์ชันของคุณ Oracle Analytics ส่งคำขอเพื่อรีจิสเตอร์ฟังก์ชัน OCI ด้วย funcMode=describeFunction และคำเรียกใช้ฟังก์ชัน OCI ด้วย funcMode=executeFunction ฟังก์ชันของแฮนด์เลอร์ใน func.py ต้องทำงานในโหมด describeFunction หรือโหมด executeFunction การดำเนินการนี้สามารถทำได้ตามค่าตัวแปรอินพุต funcMode จากคำขอที่แสดงทางด้านล่าง

    คำอธิบาย GUID-0C335709-DEDC-4655-8A29-F544608DA8B3-default.png มีดังนี้
    .png

    นี่คือรูปแบบคำขอและการตอบกลับของฟังก์ชัน OCI สำหรับตัวอย่างจำนวนคำใน Python

    funcMode = describeFunction

    { "funcMode": "describeFunction"}

    เมื่อ funcMode ในคำขอคือ 'describeFunction' ฟังก์ชันต้องแสดงการกำหนดฟังก์ชันโดยมีสถานะ (returnCode & errorMessage), เอาต์พุต (ชื่อ, dataType ของคอลัมน์เอาต์พุต), พารามิเตอร์ (ชื่อ, คำอธิบาย, ประเภทของพารามิเตอร์อินพุต เป็นต้น), bucketName เป็นออบเจกต์ JSON ในรูปแบบต่อไปนี้ (ตัวอย่างจำนวนคำ) ได้แก่

    funcDefinition = {
        "status": {
            "returnCode": 0,
            "errorMessage": ""
        },
        "funcDescription": {
            "outputs": [
                {"name": "word_count", "dataType": "integer"}
            ],
            "parameters": [
                {"name": "textColumn", "displayName": "Text Column",
                 "description": "Choose column to count words", "required": True,
                 "value": {"type": "column"}}
            ],
            "bucketName": "bucket-OCI-FAAS",
            "isOutputJoinableWithInput": True
        }
    }

    เพิ่มรหัสต่อไปนี้ใน func.py เพื่อแสดง funcDefinition เมื่อ funcMode ในคำขอคือ 'describeFunction'

    def handler(ctx, data: io.BytesIO = None):
        response_data = ""
        try:
            body = json.loads(data.getvalue())
            funcMode = body.get("funcMode")
            if funcMode == 'describeFunction':
               response_data = json.dumps(funcDefinition)
        except (Exception, ValueError) as ex:
            response_data = json.dumps(
                {"error": "{0}".format(str(ex))})
        return response.Response(
            ctx, response_data,
            headers={"Content-Type": "application/json"}
        )

    funcMode = executeFunction - เมื่อ funcMode คือ 'executeFunction' ควรมีการรันตรรกะของฟังก์ชันตามจริง และมีการส่งการตอบกลับกลับไปยัง Oracle Analytics พร้อมเอาต์พุต เมื่อมีการเรียกใช้ฟังก์ชันที่รีจิสเตอร์จากโฟลว์ข้อมูลใน Oracle Analytics ออบเจกต์คำขอจะอยู่ในรูปแบบต่อไปนี้โดยมีชื่อคอลัมน์เป็น args, input(bucketName, fileName, fileExtension, fileName, method & rowID) และ output(bucketName, fileName & fileExtension)

    {
        "args":
        {
            "textColumn": "REVIEW"
        },
        "funcMode": "executeFunction",
        "input":
        {
            "bucketName": "bucket-OCI-FAAS",
            "fileExtension": ".csv",
            "fileName": "oac-fn-e99cd4fddb3844be89c7af6ea4bbeb76-input",
            "method": "csv",
            "rowID": "row_id"
        },
        "output":
        {
            "bucketName": "bucket-OCI-FAAS",
            "fileExtension": ".csv",
            "fileName": "oac-fn-e99cd4fddb3844be89c7af6ea4bbeb76-output"
        }
    }

ข้อมูลเกี่ยวกับการสร้างฟังก์ชันต่างๆ ใน OCI

คุณสามารถสร้างฟังก์ชันต่างๆ โดยใช้คอนโซล OCI, บรรทัดคำสั่ง (Fn Project CLI), หรือ API ตัวอย่างเช่น ในคอนโซล OCI คลิก บริการของผู้พัฒนา แล้วคลิก ฟังก์ชัน และทำตามคำแนะนำบนหน้าจอเพื่อสร้างแอปพลิเคชันและฟังก์ชันอย่างน้อยหนึ่งรายการ โปรดดูรายละเอียดที่ เอกสารการสร้างฟังก์ชันต่างๆ ใน OCI หากคุณกำลังสร้างฟังก์ชันเป็นครั้งแรก ให้ทำตามขั้นตอนต่างๆ ในตัวอย่างตั้งแต่ต้นจนจบ การสร้าง, การใช้งาน และการเรียกใช้ฟังก์ชัน Helloworld ฟังก์ชันใดๆ ที่คุณต้องการใช้ใน Oracle Analytics ต้องประกอบด้วยแท็กที่มีรูปแบบอิสระ oac-compatible=true (โปรดดู ข้อมูลเกี่ยวกับการคอนฟิเกอร์ฟังก์ชัน OCI ที่จะใช้ใน Oracle Analytics ทางด้านบน)

คำแนะนำเกี่ยวกับการสร้างฟังก์ชันต่างๆ ในคอนโซล OCI

  • ใช้งานล็อก - ตามค่าดีฟอลต์ ระบบจะเลิกใช้งานล็อกสำหรับฟังก์ชัน ในการใช้งานล็อกสำหรับฟังก์ชันบนเพจแอปพลิเคชัน คลิกล็อก และใช้งานล็อกที่ระบุไว้สำหรับชื่อล็อก ภายใต้ ทรัพยากร คุณสามารถเลือก สำรวจล็อก แล้วดริลล์ไปยังรายการล็อกเพื่อดีบักและวินิจฉัยปัญหาการทำงานของฟังก์ชัน
  • รวมรายการอ้างอิง - รวมแพ็คเกจที่อ้างอิงในไฟล์ requirements.txt สำหรับฟังก์ชัน
  • ทำตามกฎการเยื้อง- ทำตามกฎการเยื้องของ Python ขณะที่เขียนรหัสฟังก์ชันของ Python
  • ใช้ข้อผิดพลาดของการตอบกลับฟังก์ชัน - ใช้รายละเอียดของข้อผิดพลาดที่แสดงบนเพจโฟลว์ข้อมูลเพื่อวิเคราะห์ปัญหา
  • ทดสอบฟังก์ชันในระบบก่อน - ก่อนที่จะสร้างฟังก์ชันใน OCI ให้ทดสอบฟังก์ชันในระบบในสภาวะแวดล้อมของผู้พัฒนาก่อน เพื่อให้แน่ใจว่าฟังก์ชันถูกต้องตามรูปแบบคำสั่งและตรรกะ
  • ทดสอบฟังก์ชันใน OCI - ก่อนที่จะใช้ฟังก์ชันร่วมกันกับ Oracle Analytics โปรดตรวจสอบว่าคุณสามารถใช้งานและเรียกใช้ฟังก์ชันดังกล่าวเป็นฟังก์ชันแบบสแตนด์อโลนใน OCI ได้สำเร็จ
  • เพิ่มไทม์เอาต์- ตามค่าดีฟอลต์ ฟังก์ชันมีไทม์เอาต์เวลา 30 วินาที หากจำเป็น ให้เพิ่มการตั้งค่าไทม์เอาต์ (ตัวอย่างเช่น เปลี่ยนเป็น 300 วินาที) ในเพจ แก้ไขฟังก์ชัน ในคอนโซล OCI
  • เพิ่มหน่วยความจำ- ตามค่าดีฟอลต์ ฟังก์ชันมีขีดจำกัดหน่วยความจำ 1024MB หากจำเป็น ให้เพิ่มขีดจำกัดหน่วยความจำในเพจ แก้ไขฟังก์ชัน ในคอนโซล OCI
  • เพิ่มประสิทธิภาพของพื้นที่ - ลบไฟล์ที่ไม่ได้ใช้ในทันทีหลังการใช้งาน
  • ตรวจสอบลาเท็นซีของเน็ตเวิร์ก - โปรดจำไว้ว่าลาเท็นซีของเน็ตเวิร์กอาจทำให้เกิดความล่าช้าเล็กน้อยในการประมวลผลโดยรวม

ข้อกำหนดที่จำเป็นในการใช้งานฟังก์ชัน OCI ร่วมกับ Oracle Analytics

ในการใช้งาน Oracle Analytics ร่วมกับฟังก์ชัน OCI ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดการรักษาความปลอดภัยที่จำเป็น

ผู้ใช้ OCI ที่คุณระบุในการเชื่อมต่อระหว่าง Oracle Analytics Cloud กับรายการภายใน OCI ของคุณต้องมีสิทธิ์อ่าน เขียน และลบในคอมพาร์ทเมนต์ที่มีทรัพยากร OCI ที่คุณต้องการใช้ ตรวจสอบว่าผู้ใช้ OCI เป็นสมาชิกของกลุ่มผู้ใช้ที่มีข้อกำหนดการรักษาความปลอดภัย OCI ขั้นต่ำต่อไปนี้ เมื่อคุณเชื่อมต่อกับรายการภายใน OCI จาก Oracle Analytics คุณสามารถใช้คีย์ OCI API หรือสิ่งที่ต้องตรวจสอบสิทธิ์ของทรัพยากร

หมายเหตุ:

สำหรับสิ่งที่ต้องตรวจสอบสิทธิ์ของทรัพยากร ในการรวมอินสแตนซ์ Analytics ทั้งหมดภายใต้คอมพาร์ทเมนต์ ให้ระบุ {request.principal.type='analyticsinstance', request.principal.compartment.id='<compartmentA_ocid>'} แทน {request.principal.id='<analytics_instance_ocid>'}
ข้อกำหนดคีย์ API ข้อกำหนดสิ่งที่ต้องตรวจสอบสิทธิ์ของทรัพยากร
Allow group <group_name> to use functions-family in compartment <compartment_name> Allow any-user to use functions-family in compartment <compartment_name> where all {request.principal.id='<analytics_instance_ocid>'}
Allow group <group_name> to read buckets in compartment <compartment_name> Allow any-user to read buckets in compartment <compartment_name> where all {request.principal.id='<analytics_instance_ocid>'}
Allow group <group_name> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' Allow any-user to manage objects in compartment <compartment_name> where all {request.principal.id='<analytics_instance_ocid>', target.bucket.name='<staging_bucket_name>'}
Allow group <group_name> to read objectstorage-namespaces in tenancy Allow any-user to read objectstorage-namespaces in tenancy where all {request.principal.id='<analytics_instance_ocid>'}
ข้อกำหนดของกลุ่มแบบไดนามิค คำอธิบาย
Allow dynamic-group <dynamic_group> to manage objects in compartment <compartment_name> where target.bucket.name='<staging_bucket_name>' ให้สิทธิ์เข้าใช้บัคเก็ตชั่วคราวสำหรับกลุ่มแบบไดนามิค

ตัวอย่างกฎที่ตรงกัน: <dynamic_group>.{resource.type = 'fnfunc', resource.compartment.id = '<compartment_ocid>'}, where <compartment_ocid> คือ Oracle Cloud ID ของคอมพาร์ทเมนต์ที่มีฟังก์ชัน

เวิร์กโฟลว์ทั่วไปสำหรับการแปลงรูปแบบข้อมูลโดยใช้ฟังก์ชัน OCI

ทำตามงานระดับสูงต่อไปนี้ตามลำดับที่แสดงไว้ทางด้านล่างเพื่อแปลงรูปแบบข้อมูลใน Oracle Analytics โดยใช้ฟังก์ชัน OCI

งาน คำอธิบาย ข้อมูลเพิ่มเติม

สร้างฟังก์ชันใน OCI (ต้องมีสิทธิ์ของผู้พัฒนาฟังก์ชัน)

ในรายการภายในของ OCI ของคุณ ให้สร้างฟังก์ชันของคุณ แล้วตรวจสอบให้แน่ใจว่าฟังก์ชันเป็นไปตามสิ่งที่ต้องทำก่อนที่ระบุไว้สำหรับการใช้งานกับ Oracle Analytics

เกี่ยวกับการคอนฟิเกอร์ฟังก์ชัน OCI ที่จะใช้ใน Oracle Analytics

ระบุข้อกำหนด OCI ตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนด OCI ที่จำเป็นสำหรับการเชื่อมต่อโดยใช้คีย์ API หรือสิ่งที่ต้องตรวจสอบสิทธิ์ของทรัพยากร ข้อกำหนดที่จำเป็นในการใช้งานฟังก์ชัน OCI ร่วมกับ Oracle Analytics
เชื่อมต่อ Oracle Analytics กับรายการภายในของ OCI ของคุณ (ต้องมีสิทธิ์ของผู้ดูแลระบบหรือผู้สร้าง DV) ใน Oracle Analytics ให้สร้างการเชื่อมต่อกับรายการภายในของ OCI ของคุณ

สร้างการเชื่อมต่อกับรายการภายใน Oracle Cloud Infrastructure

รีจิสเตอร์ฟังก์ชัน OCI ใน Oracle Analytics (ต้องมีสิทธิ์ของผู้ดูแลระบบหรือผู้สร้าง DV) ใน Oracle Analytics ให้รีจิสเตอร์ฟังก์ชัน OCI ของคุณเพื่อให้คุณสามารถเรียกฟังก์ชันจากโฟลว์ข้อมูล

รีจิสเตอร์ฟังก์ชัน OCI ใน Oracle Analytics

แปลงรูปแบบข้อมูลของคุณโดยใช้ฟังก์ชัน OCI (ต้องมีสิทธิ์ของผู้ดูแลระบบหรือผู้สร้าง DV) สร้างโฟลว์ข้อมูล แล้วใช้ขั้นตอน ใช้สคริปต์ที่กำหนดเอง เพื่อเรียกใช้ฟังก์ชัน OCI

แปลงรูปแบบข้อมูลโดยใช้ฟังก์ชัน OCI

รีจิสเตอร์ฟังก์ชัน OCI ใน Oracle Analytics

รีจิสเตอร์ฟังก์ชันของ OCI ใน Oracle Analytics เพื่อให้คุณสามารถใช้ฟังก์ชันต่างๆ ในโฟลว์ข้อมูลเพื่อแปลงรูปแบบข้อมูล ตัวอย่างเช่น คุณอาจรีจิสเตอร์ฟังก์ชันการแปลงภาษาเพื่อให้ผู้วิเคราะห์ข้อมูลสามารถแปลงค่าข้อความภาษาอังกฤษเป็นภาษาสเปนหรือเยอรมัน

  1. ใน Oracle Analytics ในเพจโฮม ให้คลิก เมนูเพจ จากนั้นคลิกรีจิสเตอร์โมเดล/ฟังก์ชัน แล้วคลิก ฟังก์ชัน OCI
  2. ที่ไดอะล็อก รีจิสเตอร์ฟังก์ชันที่กำหนดเอง ให้เลือกการเชื่อมต่อกับรายการภายในของ OCI ที่ฟังก์ชันของคุณตั้งอยู่
  3. ที่ไดอะล็อก เลือกแอปพลิเคชัน เลือกแอปพลิเคชันที่ประกอบด้วยฟังก์ชัน OCI ของคุณ
    หากคุณไม่แน่ใจ โปรดสอบถามจากบุคคลที่สร้างฟังก์ชันใน OCI
  4. ที่ไดอะล็อก เลือกฟังก์ชัน ให้เลือกฟังก์ชัน แล้วคลิก รีจิสเตอร์
    หากฟังก์ชันที่คุณต้องการใช้เป็นสีเทา โปรดสอบถามผู้ดูแลระบบเพื่อตรวจสอบให้แน่ใจว่าฟังก์ชันดังกล่าวได้รับการคอนฟิเกอร์ไว้สำหรับ Oracle Analytics โปรดดู เกี่ยวกับการคอนฟิเกอร์ฟังก์ชัน OCI ที่จะใช้ใน Oracle Analytics
คุณสามารถใช้ฟังก์ชัน OCI ที่รีจิสเตอร์ในโฟลว์ข้อมูลเพื่อแปลงรูปแบบข้อมูลได้ ในการตรวจสอบว่าฟังก์ชันใดได้รับการรีจิสเตอร์แล้ว คุณสามารถดูฟังก์ชันที่รีจิสเตอร์ได้บนแท็บ สคริปต์ ของเพจการเรียนรู้ของเครื่อง (จากเพจโฮม คลิกนาวิเกเตอร์ จากนั้นคลิกการเรียนรู้ของเครื่อง แล้วคลิกสคริปต์)