ใช้สคริปต์ Python ในลำดับงานของคุณ

ข้อจำกัดความรับผิด: หัวข้อนี้มีข้อมูลเกี่ยวกับผลิตภัณฑ์ของบริษัทอื่น โปรดทราบว่าเนื่องจากเราพยายามที่จะอ้างอิงถึงเนื้อหาจากบุคคลที่สามอย่างแม่นยำถูกต้อง ข้อมูลที่เรานำเสนอในที่นี้อาจเปลี่ยนแปลงไปโดยไม่ได้แจ้งให้ทราบ เนื่องจาก Python เปลี่ยนแปลงไป หากต้องการข้อมูลที่เป็นปัจจุบันที่สุด โปรดดูเอกสารและการสนับสนุนของ Python

Python เป็นภาษาการเขียนโปรแกรมระดับสูงที่ใช้กันอย่างแพร่หลายสำหรับการเขียนโปรแกรมอเนกประสงค์ ด้วยการส่งคำสั่ง Python ไปยังบริการภายนอกผ่าน Tableau Prep Builder คุณสามารถขยายตัวเลือกการจัดเตรียมข้อมูลของคุณได้อย่างง่ายดายโดยการดำเนินการ เช่น เพิ่มเลขแถว จัดลำดับฟิลด์ เติมข้อมูลในฟิลด์ และการทำความสะอาดอื่นๆ ที่คุณอาจทำในการใช้ฟิลด์ที่คำนวณ

เพื่อเพิ่มสคริปต์ Python ในลำดับงานของคุณ คุณต้องกำหนดค่าการเชื่อมต่อระหว่าง Tableau และเซิร์ฟเวอร์ TabPy จากนั้นคุณสามารถใช้สคริปต์ Python เพื่อปรับใช้ฟังก์ชันที่รองรับไปยังข้อมูลจากลำดับงานของคุณโดยใช้กรอบข้อมูล Pandas เมื่อคุณป้อนขั้นตอนสคริปต์ไปยังลำดับงานของคุณและระบุรายละเอียดการกำหนดค่า ไฟล์ และฟังก์ชันที่คุณต้องการจะใช้แล้ว ข้อมูลจะได้รับการส่งต่อไปยังเซิร์ฟเวอร์ TabPy อย่างปลอดภัย จะมีการปรับใช้นิพจน์ในสคริปต์ และผลลัพธ์จะได้รับการส่งคืนมาเป็นตารางที่คุณสามารถล้างหรือส่งออกตามต้องการ

คุณสามารถเรียกใช้งานลำดับงานที่มีขั้นตอนสคริปต์ใน Tableau Server ได้ตราบใดที่คุณได้กำหนดค่าการเชื่อมต่อไปยังเซิร์ฟเวอร์ TabPy ของคุณแล้ว ไม่รองรับการเรียกใช้ลำดับงานด้วยขั้นตอนสคริปต์ใน Tableau Cloud ในขณะนี้ เพื่อกำหนดค่า Tableau Server โปรดดูกำหนดค่าเซิร์ฟเวอร์ Tableau Python (TabPy) สำหรับ Tableau Server

หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับวิธีการกำหนดค่าเว็บไซต์บน Tableau Server ด้วยส่วนขยายการวิเคราะห์สำหรับเวิร์กบุ๊ก โปรดดูกำหนดค่าการเชื่อมต่อด้วยส่วนขยายการวิเคราะห์

ข้อกำหนดเบื้องต้น

เพื่อเพิ่มสคริปต์ Python ในลำดับงานของคุณ ให้ตั้งค่าดังต่อไปนี้ให้เสร็จสิ้น ไม่รองรับการสร้างหรือเรียกใช้ลำดับงานด้วยขั้นตอนสคริปต์ใน Tableau Cloud ในขณะนี้

  1. ดาวน์โหลดและติดตั้ง Python(ลิงก์จะเปิดในหน้าต่างใหม่) ดาวน์โหลดและติดตั้งเวอร์ชันล่าสุดของ Python สำหรับ Linux, Mac, หรือ Windows

  2. ดาวน์โหลดและติดตั้งเซิร์ฟเวอร์ Tableau Python (TabPy(ลิงก์จะเปิดในหน้าต่างใหม่)) ทำตามคำแนะนำการติดตั้งและกำหนดค่าสำหรับการติดตั้ง TabPy Tableau Prep Builder ใช้ TabPy เพื่อส่งข้อมูลจากลำดับงานของคุณไปยัง TabPy เป็นอินพุต ปรับใช้สคริปต์ของคุณ จากนั้นส่งผลลัพธ์กลับไปยังลำดับงานนั้น

  3. ติดตั้ง Pandas เรียกใช้ pip3 install pandas คุณต้องใช้กรอบข้อมูล Pandas ในสคริปต์ของคุณเพื่อบูรณาการเข้ากับ Tableau Prep Builder

กำหนดค่าเซิร์ฟเวอร์ Tableau Python (TabPy) สำหรับ Tableau Server

หากคุณวางแผนที่จะเผยแพร่ สร้าง แก้ไข และเรียกใช้ลำดับงานที่มีขั้นตอนสคริปต์ใน Tableau Server คุณจะต้องกำหนดค่าการเชื่อมต่อระหว่างเซิร์ฟเวอร์ TabPy ของคุณและ Tableau Server

  • เวอร์ชัน 2019.3 และใหม่กว่า: คุณสามารถเรียกใช้ลำดับงานที่เผยแพร่ที่มีขั้นตอนสคริปต์ใน Tableau Server
  • เวอร์ชัน 2020.4.1 และใหม่กว่า: คุณสามารถสร้าง แก้ไข และเรียกใช้ลำดับงานที่มีขั้นตอนสคริปต์ใน Tableau Server ได้
  • Tableau Cloud: ยังไม่รองรับการสร้างหรือเรียกใช้ลำดับงานที่มีขั้นตอนสคริปต์ในขณะนี้
  1. เปิดบรรทัดคำสั่ง TSM
  2. ป้อนคำสั่งต่อไปนี้เพื่อตั้งค่าที่อยู่ของโฮสต์ ค่าพอร์ต และการหมดเวลาการเชื่อมต่อ

    tsm security maestro-tabpy-ssl enable --connection-type {maestro-tabpy-secure/maestro-tabpy} --tabpy-host <TabPy IP address or host name> --tabpy-port <TabPy port> --tabpy-username <TabPy username> --tabpy-password <TabPy password> --tabpy-connect-timeout-ms <TabPy connect timeout>

    • เลือก {maestro-tabpy-secure} เพื่อเปิดใช้งานการเชื่อมต่อที่ปลอดภัยหรือ {maestro-tabpy} เพื่อเปิดใช้งานการเชื่อมต่อที่ไม่ปลอดภัย
    • หากคุณเลือก {maestro-tabpy-secure} ให้ระบุไฟล์ใบรับรอง -cf<certificate file path> ในบรรทัดคำสั่ง
    • ระบุ --tabpy-connect-timeout-ms <TabPy connect timeout> เป็นมิลลิวินาที ตัวอย่างเช่น --tabpy-connect-timeout-ms 900000
  3. ป้อนคำสั่งต่อไปนี้เพื่อปิดใช้งานการเชื่อมต่อ TabPy

    tsm security maestro-tabpy-ssl disable

สร้างสคริปต์ Python ของคุณ

เมื่อคุณสร้างสคริปต์ของคุณ ให้ใส่ฟังก์ชันที่ระบุ Pandas (pd.DataFrame) เป็นอาร์กิวเมนต์ของฟังก์ชันนั้นด้วย การดำเนินการนี้จะเรียกข้อมูลของคุณจาก Tableau Prep Builder คุณจะต้องส่งผลลัพธ์คืนใน Pandas (pd.DataFrame) โดยใช้ประเภทข้อมูลที่รองรับด้วย

ตัวอย่างเช่น เพื่อเพิ่มการเข้ารหัสไปยังเซตของฟิลด์ในลำดับงาน คุณสามารถเขียนสคริปต์ดังต่อไปนี้

def encode(input):     
  le = preprocessing.LabelEncoder()
  Return pd.DataFrame({
    'Opportunity Number' : input['Opportunity Number'],
    'Supplies Subgroup Encoded' : le.fit_transform(input['Supplies Subgroup']),
    'Region Encoded' : le.fit_transform(input['Region']),
    'Route To Market Encoded' : le.fit_transform(input['Route To Market']),
    'Opportunity Result Encoded' : le.fit_transform(input['Opportunity Result']),
    'Competitor Type Encoded' : le.fit_transform(input['Competitor Type']),
    'Supplies Group Encoded' : le.fit_transform(input['Supplies Group']),
})

รองรับประเภทข้อมูลต่อไปนี้:

ประเภทข้อมูลใน Tableau Prep Builderประเภทข้อมูลใน Python
สตริงสตริง UTF-8 มาตรฐาน
ทศนิยมDouble
จำนวนเต็มจำนวนเต็ม
บูลีนบูลีน
วันที่สตริงในรูปแบบ ISO_DATE “YYYY-MM-DD” พร้อมการชดเชยโซนที่ไม่บังคับ เช่น “2011-12-03” เป็นวันที่ที่ถูกต้อง
วันที่และเวลาสตริงในรูปแบบ ISO_DATE_TIME “YYYY-MM-DDT:HH:mm:ss” พร้อมการชดเชยโซนที่ไม่บังคับ ตัวอย่างเช่น “2011-12-03T10:15:30+01:00” เป็นวันที่ที่ถูกต้อง

หมายเหตุ: ต้องส่งคืนวันที่และวันที่และเวลาเป็นสตริงที่ถูกต้องเสมอ

หากคุณต้องการฟิลด์ส่งคืนที่แตกต่างจากที่คุณป้อน คุณจะต้องรวมฟังก์ชัน get_output_schema ไว้ในสคริปต์ของคุณซึ่งกำหนดเอาต์พุตและประเภทข้อมูลด้วย มิฉะนั้น เอาต์พุตจะใช้ช่องจากข้อมูลอินพุต ซึ่งนำมาจากขั้นตอนที่อยู่ก่อนขั้นตอนสคริปต์ในลำดับงาน

ใช้ไวยากรณ์ต่อไปนี้ในการระบุประเภทข้อมูลสำหรับฟิลด์ของคุณใน get_output_schema

ฟังก์ชันใน Pythonประเภทข้อมูลที่เป็นผลลัพธ์
prep_string()สตริง
prep_decimal()ทศนิยม
prep_int()จำนวนเต็ม
prep_bool()บูลีน
prep_date()วันที่
prep_datetime()วันที่และเวลา

วงเล็บเหลี่ยมสามารถใช้เพื่อเข้าถึงแถวจาก DataFrame วงเล็บเดี่ยวจะส่งเอาต์พุตเป็น Pandas Series ในขณะที่วงเล็บคู่จะส่งเอาต์พุตเป็น Pandas DataFrame

def create_key(df):
return pd.DataFrame({
"Key": ['12345']
})

ตัวอย่างต่อไปนี้แสดงฟังกํชัน get_output_schema ที่เพิ่มไปยังสคริปต์ Python เข้ารหัสฟิลด์

def get_output_schema():       
  return pd.DataFrame({
    'Opportunity Number' : prep_int(),
    'Supplies Subgroup Encoded' : prep_int(),
    'Region Encoded' : prep_int(),
    'Route To Market Encoded' : prep_int(),
    'Opportunity Result Encoded' : prep_int(),
    'Competitor Type Encoded' : prep_int(),
    'Supplies Group Encoded' : prep_int()
})

เชื่อมต่อกับเซิร์ฟเวอร์ Tableau Python (TabPy) ของคุณ

สำคัญ: ตั้งแต่Tableau Prep Builderเวอร์ชัน 2020.3.3 เป็นต้นไป คุณสามารถกำหนดค่าการเชื่อมต่อเซิร์ฟเวอร์ครั้งเดียวจากเมนูความช่วยเหลือด้านบนแทนการตั้งค่าการเชื่อมต่อในแต่ละลำดับงานในขั้นตอน “สคริปต์” โดยคลิกเชื่อมต่อกับเซิร์ฟเวอร์ Tableau Python (TabPy)และป้อนรายละเอียดการเชื่อมต่อของคุณ คุณจะต้องกำหนดค่าการเชื่อมต่อของคุณใหม่โดยใช้เมนูใหม่นี้สำหรับลำดับงานใดๆ ที่สร้างขึ้นใน Tableau Prep Builder เวอร์ชันเก่าที่คุณเปิดในเวอร์ชัน 2020.3.3

  1. เลือก ความช่วยเหลือ > การตั้งค่าและประสิทธิภาพ > จัดการการเชื่อมต่อส่วนขยายการวิเคราะห์
  2. ในรายการดรอปดาวน์เลือกส่วนขยายการวิเคราะห์ ให้เลือกเซิร์ฟเวอร์ Tableau Python (TabPy)

  3. ป้อนข้อมูลเข้าสู่ระบบของคุณ:
    • พอร์ต 9004 เป็นพอร์ตเริ่มต้นสำหรับ TabPy
    • หากเซิร์ฟเวอร์ต้องการข้อมูลเข้าสู่ระบบ ให้ป้อน “ชื่อผู้ใช้” และ “รหัสผ่าน”
    • หากเซิร์ฟเวอร์มีการเข้ารหัส SSL ให้เลือกกล่องกาเครื่องหมาย Require SSL (ต้องใช้ SSL) จากนั้นให้คลิกลิงก์ ไม่ระบุไฟล์การกำหนดค่าแบบกำหนดเอง... เพื่อเลือกใบรับรองสำหรับการเชื่อมต่อ นี่คือไฟล์ใบรับรองเซิร์ฟเวอร์ SSL ของคุณ

      หมายเหตุ: Tableau Prep Builder ไม่มีวิธีในการทดสอบการเชื่อมต่อ หากการเชื่อมต่อมีปัญหาจะมีข้อความแสดงข้อผิดพลาดปรากฏขึ้น

เพิ่มสคริปต์ลงในลำดับงานของคุณ

เปิดใช้เซิร์ฟเวอร์ TabPy ของคุณและทำตามขั้นตอนต่อไปนี้ให้ครบถ้วน

หมายเหตุ TabPy ต้องใช้ Tornado Package เวอร์ชัน 5.1.1 ในการทำงาน หากคุณได้รับ 'tornado.web’ ไม่มีแอตทริบิวต์ 'asynchronous’ ขณะพยายามเปิด TabPy ให้เรียกใช้ pip list จากบรรทัดคำสั่งเพื่อตรวจสอบเวอร์ชันของ Tornado ที่ติดตั้งไว้ หากคุณติดตั้งเวอร์ชันอื่นไว้ ให้ดาวน์โหลด Tornado Package เวอร์ชัน 5.1.1(ลิงก์จะเปิดในหน้าต่างใหม่) จากนั้นให้เรียกใช้ pip uninstall tornado เพื่อถอนการติดตั้งเวอร์ชันปัจจุบันของคุณ จากนั้นให้เรียกใช้ pip install tornado==5.1.1 เพื่อติดตั้งเวอร์ชันที่จำเป็น

  1. เปิด Tableau Prep Builder แล้วคลิกปุ่มเพิ่มการเชื่อมต่อ

    ในการเขียนเว็บ จากหน้าแรก ให้คลิกสร้าง > โฟลว์ หรือจากหน้าสำรวจ ให้คลิกใหม่ > โฟลว์ จากนั้นคลิก เชื่อมต่อกับข้อมูล

  2. จากรายการตัวเชื่อมต่อ ให้เลือกประเภทไฟล์หรือเซิร์ฟเวอร์ที่โฮสต์ข้อมูลของคุณ หากได้รับการแจ้งเตือน ให้ป้อนข้อมูลที่จำเป็นในการเข้าสู่ระบบ และเข้าถึงข้อมูลของคุณ

  3. คลิกไอคอนบวก และเลือก Add Script (เพิ่มสคริปต์) จากเมนูบริบท

  4. ในหน้าต่าง “สคริปต์” ในส่วนประเภทการเชื่อมต่อ ให้เลือก เซิร์ฟเวอร์ Tableau Python (TabPy)

  5. ในส่วน ชื่อไฟล์ ให้คลิก เรียกดู เพื่อเลือกไฟล์สคริปต์ของคุณ
  6. ป้อน ชื่อฟังก์ชัน จากนั้นกด Enter เพื่อเรียกใช้สคริปต์ของคุณ

ขอบคุณสำหรับข้อเสนอแนะของคุณส่งข้อเสนอแนะของคุณเรียบร้อยแล้ว ขอขอบคุณ