Hướng dẫn write stored procedure in python - viết thủ tục được lưu trữ trong python

Chủ đề này giải thích cách viết một thủ tục được lưu trữ trong Python. Bạn có thể sử dụng thư viện SnowPark trong quy trình được lưu trữ của mình để thực hiện truy vấn, cập nhật và các công việc khác trên các bảng trong Bông tuyết.

Trong chủ đề này:

Giới thiệu¶

Với các quy trình lưu trữ của SnowPark, bạn có thể xây dựng và chạy đường ống dữ liệu của mình trong Snowflake, sử dụng kho tuyết làm khung tính toán. Đối với mã đường ống dữ liệu của bạn, bạn sử dụng API SnowPark cho Python để viết các quy trình được lưu trữ. Để lên lịch thực hiện các thủ tục được lưu trữ này, bạn sử dụng các nhiệm vụ.tasks.

Các phần tiếp theo cung cấp thêm thông tin về các thủ tục lưu trữ của SnowPark cho Python.

Điều kiện tiên quyết

Bạn phải sử dụng phiên bản 0.4.0 hoặc phiên bản gần đây của Thư viện SnowPark.

Snowflake hiện hỗ trợ viết các thủ tục được lưu trữ trong phiên bản Python 3.8.

Ghi chú

Các thủ tục được lưu trữ Python yêu cầu Thư viện Python Snowpark mới nhất, nơi cài đặt các phụ thuộc của bên thứ ba bổ sung. Trước khi cố gắng tạo quy trình được lưu trữ Python, hãy đảm bảo tính năng của các gói Anaconda được bật để có thể tải phụ thuộc của bên thứ ba cần thiết. Để biết thêm thông tin, hãy xem bằng cách sử dụng các gói của bên thứ ba từ Anaconda.Using Third-Party Packages from Anaconda.

Chọn để tạo một quy trình được lưu trữ với mã nội tuyến hoặc với mã được tải lên từ giai đoạn

Như trường hợp của Python UDFS, bạn có thể tạo một quy trình được lưu trữ nội tuyến hoặc quy trình được lưu trữ với mã được tải lên từ một giai đoạn., you can either create an in-line stored procedure or a stored procedure with code uploaded from a stage.

  • Trong một quy trình được lưu trữ nội tuyến, bạn viết mã Python của mình theo mệnh đề AS AS của câu lệnh Creat Creates. Ví dụ:

    CREATE OR REPLACE PROCEDURE MYPROC(from_table STRING, to_table STRING, count INT)
      RETURNS STRING
      LANGUAGE PYTHON
      RUNTIME_VERSION = '3.8'
      PACKAGES = ('snowflake-snowpark-python')
      HANDLER = 'run'
    AS
    $$
    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    $$;
    

  • Trong một quy trình được lưu trữ được tạo với mã được tải lên từ một giai đoạn, bạn viết mã python của mình vào tệp nguồn

    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    3. Ví dụ: bạn có thể đặt mã sau vào một tệp có tên
    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    4:

    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    

    Sau đó, bạn tải tệp lên một giai đoạn và thực thi lệnh Creat Produre, trỏ đến tệp trên sân khấu. Ví dụ:

    CREATE OR REPLACE PROCEDURE MYPROC(from_table STRING, to_table STRING, count INT)
      RETURNS INT
      LANGUAGE PYTHON
      RUNTIME_VERSION = '3.8'
      PACKAGES = ('snowflake-snowpark-python')
      IMPORTS = ('@mystage/my_py_file.py')
      HANDLER = 'my_py_file.run';
    

Viết mã Python cho thủ tục được lưu trữ

Đối với mã cho quy trình được lưu trữ của bạn, bạn phải viết phương thức hoặc hàm Python.

Lên kế hoạch viết thủ tục lưu trữ của bạn

Như được mô tả dưới đây, mã Python cho quy trình được lưu trữ của bạn có các ràng buộc tương tự như mã cho một UDF Python. Khi có kế hoạch viết các thủ tục được lưu trữ của bạn, bạn nên xem xét các ràng buộc đó.

Giới hạn lượng bộ nhớ tiêu thụ

Như trường hợp của Python UDFS, Snowflake đặt giới hạn theo phương pháp hoặc chức năng theo số lượng bộ nhớ cần thiết.Python UDFs, Snowflake places limits on a method or function in terms of the amount of memory needed.

Trong phương pháp hoặc chức năng của bạn, bạn nên tránh tiêu thụ quá nhiều bộ nhớ.

Hiểu các hạn chế bảo mật

Phương pháp hoặc chức năng của bạn chạy trong một công cụ bị hạn chế, vì vậy bạn nên tuân theo các quy tắc tương tự như được ghi lại cho Python UDFS.documented for Python UDFs.

Quyết định sử dụng quyền của chủ sở hữu hoặc quyền của người gọi

Ngoài ra, khi có kế hoạch viết quy trình được lưu trữ của bạn, hãy xem xét liệu bạn có muốn quy trình được lưu trữ để chạy với quyền của người gọi hay quyền của chủ sở hữu hay không.caller’s rights or owner’s rights.

Hãy nhận biết về Phiên bản Snowflake-Snowpark-Python

Thư viện Snowflake-Snowpark-Python có sẵn trong môi trường quy trình lưu trữ Python thường là một phiên bản đằng sau phiên bản phát hành công khai. Điều này là do các hạn chế của quá trình phát hành thủ tục được lưu trữ. Sử dụng SQL này để tìm ra phiên bản Snowflake-Snowpark-Python mới nhất.

select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;

Viết phương thức hoặc chức năng

Khi viết phương thức hoặc chức năng cho quy trình được lưu trữ, lưu ý như sau:

  • Chỉ định đối tượng SnowPark

    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    5 là đối số đầu tiên của phương thức hoặc chức năng của bạn. Khi bạn gọi thủ tục được lưu trữ của mình, Snowflake sẽ tự động tạo một đối tượng
    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    5 và chuyển nó sang thủ tục được lưu trữ của bạn. (Bạn không thể tự tạo đối tượng
    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    5.)

  • Đối với phần còn lại của các đối số và đối với giá trị trả về, hãy sử dụng các loại Python tương ứng với các loại dữ liệu Bông tuyết. Bông tuyết hỗ trợ các loại dữ liệu Python được liệt kê trong ánh xạ kiểu dữ liệu SQL-Python cho các tham số và loại trả vềSnowflake data types. Snowflake supports the Python data types listed in SQL-Python Data Type Mappings for Parameters and Return Types

Truy cập dữ liệu trong Bông tuyết từ thủ tục lưu trữ của bạn

Để truy cập dữ liệu trong Snowflake, hãy sử dụng API thư viện SnowPark.

Khi xử lý một cuộc gọi đến quy trình lưu trữ Python của bạn, Snowflake tạo ra một đối tượng SnowPark

def run(session, from_table, to_table, count):
  session.table(from_table).limit(count).write.save_as_table(to_table)
  return "SUCCESS"
5 và chuyển đối tượng cho phương thức hoặc chức năng cho quy trình được lưu trữ của bạn.

Như trường hợp với các thủ tục được lưu trữ trong các ngôn ngữ khác, bối cảnh cho phiên (ví dụ: các đặc quyền, cơ sở dữ liệu hiện tại và lược đồ, v.v.) được xác định bằng liệu thủ tục được lưu trữ có chạy theo quyền của người gọi hay quyền của chủ sở hữu hay không. Để biết chi tiết, xem truy cập và thiết lập trạng thái phiên.Accessing and Setting the Session State.

Bạn có thể sử dụng đối tượng

def run(session, from_table, to_table, count):
  session.table(from_table).limit(count).write.save_as_table(to_table)
  return "SUCCESS"
5 này để gọi API trong Thư viện SnowPark. Ví dụ: bạn có thể tạo DataFrame cho bảng hoặc thực hiện câu lệnh SQL.create a DataFrame for a table or execute an SQL statement.

Xem Hướng dẫn dành cho nhà phát triển SnowPark để biết thêm thông tin.Snowpark Developer Guide for more information.

Sau đây là một ví dụ về phương thức Python sao chép một số lượng hàng được chỉ định từ bảng này sang bảng khác. Phương pháp lấy các đối số sau:

  • Một đối tượng Snowpark

    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    5

  • Tên của bảng để sao chép các hàng từ

  • Tên của bảng để lưu các hàng vào

  • Số lượng hàng để sao chép

Phương thức trong ví dụ này trả về một chuỗi.

def run(session, from_table, to_table, count):

session.table(from_table).limit(count).write.save_as_table(to_table)
  return "SUCCESS"

Sử dụng các gói của bên thứ ba từ Anaconda¶

Bạn có thể chỉ định các gói Anaconda để cài đặt khi bạn tạo các quy trình lưu trữ Python. Để xem danh sách các gói của bên thứ ba từ Anaconda, hãy xem kênh Bông tuyết Anaconda. Các gói bên thứ ba này được xây dựng và cung cấp bởi Anaconda. Bạn có thể sử dụng kênh Snowflake Conda để thử nghiệm và phát triển cục bộ mà không phải trả giá theo các điều khoản phần mềm nhúng bổ sung cho các điều khoản dịch vụ của Anaconda.

Đối với những hạn chế, xem giới hạn.Limitations.

Bắt đầu¶

Trước khi bạn bắt đầu sử dụng các gói được cung cấp bởi Anaconda bên trong Snowflake, bạn phải thừa nhận các điều khoản của bên thứ ba Blononda bằng cách làm theo các bước dưới đây.

Ghi chú

  • Vai trò quản trị viên tổ chức (Orgadmin) được yêu cầu để hoàn thành các bước trong phần này. Để biết thông tin về các tổ chức, hãy xem Quản lý Tổ chức Bông tuyết của bạn.

  • Để chấp nhận các điều khoản, người dùng phải có các thuộc tính người dùng sau:

    • Họ

    • Họ

    • Địa chỉ email

    Nếu các thuộc tính của người dùng không được đặt, giao diện người dùng tuyết sẽ hiển thị một thông báo cho bạn biết cập nhật các thuộc tính này trước khi tiến hành. Quản trị viên người dùng (nghĩa là người dùng có vai trò UserAdmin) hoặc vai trò cao hơn hoặc vai trò khác với đặc quyền sở hữu trên đối tượng người dùng Snowflake của bạn, có thể thêm các chi tiết này vào hồ sơ người dùng của bạn.

  1. Đăng nhập vào Snowsight, giao diện web Snowflake.Snowsight, the Snowflake web interface.

  2. Nhấp vào menu thả xuống bên cạnh tên đăng nhập của bạn, sau đó nhấp vào vai trò chuyển đổi »orgadmin để thay đổi vai trò quản trị viên tổ chức.Switch Role » ORGADMIN to change to the organization administrator role.

  3. Nhấp vào Quản trị viên »Thanh toán» Điều khoản & Thanh toán.Admin » Billing » Terms & Billing.

  4. Cuộn đến phần Anaconda và nhấp vào nút Bật. Hộp thoại Gói Anaconda (tính năng xem trước) mở ra.Anaconda section and click the Enable button. The Anaconda Packages (Preview Feature) dialog opens.

  5. Nhấp vào liên kết để xem xét các Điều khoản của Bên thứ ba của Bông tuyết.

  6. Nếu bạn đồng ý với các điều khoản, nhấp vào nút Xác nhận & Tiếp tục.Acknowledge & Continue button.

Ghi chú

Vai trò quản trị viên tổ chức (Orgadmin) được yêu cầu để hoàn thành các bước trong phần này. Để biết thông tin về các tổ chức, hãy xem Quản lý Tổ chức Bông tuyết của bạn.

  • Để chấp nhận các điều khoản, người dùng phải có các thuộc tính người dùng sau:

  • Họ

  • Họ

Địa chỉ email

Nếu các thuộc tính của người dùng không được đặt, giao diện người dùng tuyết sẽ hiển thị một thông báo cho bạn biết cập nhật các thuộc tính này trước khi tiến hành. Quản trị viên người dùng (nghĩa là người dùng có vai trò UserAdmin) hoặc vai trò cao hơn hoặc vai trò khác với đặc quyền sở hữu trên đối tượng người dùng Snowflake của bạn, có thể thêm các chi tiết này vào hồ sơ người dùng của bạn.

select * from information_schema.packages where language = 'python';

Đăng nhập vào Snowsight, giao diện web Snowflake.Using Third-Party Packages in the Snowflake Python UDF documentation.

Nhấp vào menu thả xuống bên cạnh tên đăng nhập của bạn, sau đó nhấp vào vai trò chuyển đổi »orgadmin để thay đổi vai trò quản trị viên tổ chức.

Nhấp vào Quản trị viên »Thanh toán» Điều khoản & Thanh toán.upload those files to a stage so that the files will be available when the stored procedure executes.

Cuộn đến phần Anaconda và nhấp vào nút Bật. Hộp thoại Gói Anaconda (tính năng xem trước) mở ra.executing the CREATE PROCEDURE statement, use the IMPORTS clause to point to these files.

Nhấp vào liên kết để xem xét các Điều khoản của Bên thứ ba của Bông tuyết.

Nếu bạn đồng ý với các điều khoản, nhấp vào nút Xác nhận & Tiếp tục.

  1. Nếu bạn không thừa nhận các điều khoản của bên thứ ba của Bông tuyết như được mô tả ở trên, bạn vẫn có thể sử dụng các quy trình được lưu trữ, nhưng với những hạn chế này:

    Bạn có thể sử dụng bất kỳ gói nào của bên thứ ba từ Anaconda.PUT command to upload the files, use a named internal stage. (The PUT command does not support uploading files to external stages.)

    Bạn vẫn có thể chỉ định SnowPark Python là một gói trong một quy trình được lưu trữ, nhưng bạn có thể chỉ định một phiên bản cụ thể.CREATE STAGE. For example, the following command creates a new internal stage named

    CREATE OR REPLACE PROCEDURE MYPROC(from_table STRING, to_table STRING, count INT)
      RETURNS INT
      LANGUAGE PYTHON
      RUNTIME_VERSION = '3.8'
      PACKAGES = ('snowflake-snowpark-python')
      IMPORTS = ('@mystage/my_py_file.py')
      HANDLER = 'my_py_file.run';
    
    2:

    Ghi chú

    Vai trò quản trị viên tổ chức (Orgadmin) được yêu cầu để hoàn thành các bước trong phần này. Để biết thông tin về các tổ chức, hãy xem Quản lý Tổ chức Bông tuyết của bạn.READ privilege to the stage.

  2. Để chấp nhận các điều khoản, người dùng phải có các thuộc tính người dùng sau:PUT command to upload the following files to that stage:

    • Họ

    • Họ

    Địa chỉ email

    put file:///users/myusername/myfile.py
            @mystage
            AUTO_COMPRESS = FALSE
            OVERWRITE = TRUE
            ;
    

    Ghi chú

    Vai trò quản trị viên tổ chức (Orgadmin) được yêu cầu để hoàn thành các bước trong phần này. Để biết thông tin về các tổ chức, hãy xem Quản lý Tổ chức Bông tuyết của bạn.execute the CREATE PROCEDURE command, you will need to specify the filename with this

    CREATE OR REPLACE PROCEDURE MYPROC(from_table STRING, to_table STRING, count INT)
      RETURNS INT
      LANGUAGE PYTHON
      RUNTIME_VERSION = '3.8'
      PACKAGES = ('snowflake-snowpark-python')
      IMPORTS = ('@mystage/my_py_file.py')
      HANDLER = 'my_py_file.run';
    
    5 extension in the IMPORTS clause.

    Ghi chú

    Vai trò quản trị viên tổ chức (Orgadmin) được yêu cầu để hoàn thành các bước trong phần này. Để biết thông tin về các tổ chức, hãy xem Quản lý Tổ chức Bông tuyết của bạn.

Để chấp nhận các điều khoản, người dùng phải có các thuộc tính người dùng sau:

Họ

  • Họ

  • Thêm mệnh đề ghi đè = true vào lệnh PUT.

Tạo quy trình được lưu trữ

Thực hiện câu lệnh Quy trình Tạo để tạo quy trình được lưu trữ cho phương thức hoặc chức năng của bạn. Đặt các tham số được liệt kê trong bảng bên dưới.CREATE PROCEDURE statement to create a stored procedure for your method or function. Set the parameters listed in the table below.

Tham số

Sự mô tả

CREATE OR REPLACE PROCEDURE MYPROC(from_table STRING, to_table STRING, count INT)
  RETURNS INT
  LANGUAGE PYTHON
  RUNTIME_VERSION = '3.8'
  PACKAGES = ('snowflake-snowpark-python')
  IMPORTS = ('@mystage/my_py_file.py')
  HANDLER = 'my_py_file.run';
6

  • Bỏ qua đối tượng cho đối tượng SnowPark

    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    5. Như đã đề cập trước đó, đây không phải là một tham số chính thức mà bạn chỉ định trong quy trình tạo hoặc cuộc gọi. Khi bạn gọi thủ tục được lưu trữ của mình, Bông tuyết sẽ tạo ra một đối tượng
    def run(session, from_table, to_table, count):
      session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    5 và chuyển nó cho thủ tục được lưu trữ của bạn.

  • Đối với các loại dữ liệu của phần còn lại của các đối số, hãy sử dụng các loại dữ liệu Blonflake tương ứng với các loại Python của các đối số trong phương thức hoặc hàm của bạn.Snowflake data types that correspond to the Python types of the arguments in your method or function.

CREATE OR REPLACE PROCEDURE MYPROC(from_table STRING, to_table STRING, count INT)
  RETURNS INT
  LANGUAGE PYTHON
  RUNTIME_VERSION = '3.8'
  PACKAGES = ('snowflake-snowpark-python')
  IMPORTS = ('@mystage/my_py_file.py')
  HANDLER = 'my_py_file.run';
9

Chỉ định lợi nhuận với kiểu dữ liệu Bông tuyết của giá trị trả về của bạn.

select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
0

Bạn phải chỉ định điều này để chỉ ra rằng mã thủ tục được lưu trữ của bạn được viết bằng Python.

select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
1

Bạn phải chỉ định điều này để chỉ ra rằng quy trình được lưu trữ của bạn sử dụng Python 3.8.

select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
2

Trong danh sách này, bao gồm gói cho phiên bản của thư viện SnowPark mà bạn muốn sử dụng.

Chỉ định tên gói đủ điều kiện cho thư viện SnowPark ở định dạng sau:

snowflake-snowpark-python==

Ví dụ:

  • Để sử dụng phiên bản mới nhất của SnowPark, hãy sử dụng:

    PACKAGES = ('snowflake-snowpark-python')
    

  • Để sử dụng phiên bản 0.4.0 của SnowPark, hãy sử dụng:

    PACKAGES = ('snowflake-snowpark-python==0.4.0')
    

select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
3

Nếu quy trình được lưu trữ của bạn phụ thuộc vào bất kỳ tệp nào bạn đã tải lên vị trí giai đoạn, hãy đưa các tệp đó vào danh sách này.stage location, include those files in this list.

Nếu bạn đang viết một quy trình được lưu trữ nội tuyến, bạn có thể bỏ qua điều khoản này, trừ khi mã của bạn phụ thuộc vào các lớp được xác định bên ngoài quy trình được lưu trữ hoặc tệp tài nguyên.

Nếu bạn đang viết một quy trình được lưu trữ sẵn, bạn cũng phải bao gồm tệp chứa định nghĩa của quy trình được lưu trữ.

select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
4

Đặt cái này thành tên đủ điều kiện của phương thức hoặc hàm Python của bạn.

select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
5

Nếu bạn có kế hoạch thiết lập quy trình được lưu trữ để sử dụng quyền của người gọi, hãy thêm tham số này.caller’s rights, add this parameter.

Nếu không, nếu bạn muốn sử dụng quyền của chủ sở hữu, hãy bỏ qua tham số này.

Các ví dụ sau đây tạo ra các thủ tục được lưu trữ trong Python.

Ví dụ 1: Quy trình lưu trữ nội tuyến: In-line stored procedure:

def run(session, from_table, to_table, count):
  session.table(from_table).limit(count).write.save_as_table(to_table)
  return "SUCCESS"
0

Ví dụ 2: Một quy trình được lưu trữ sử dụng mã được tải lên từ một giai đoạn trong tệp Python

select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
6 trên giai đoạn nội bộ
CREATE OR REPLACE PROCEDURE MYPROC(from_table STRING, to_table STRING, count INT)
  RETURNS INT
  LANGUAGE PYTHON
  RUNTIME_VERSION = '3.8'
  PACKAGES = ('snowflake-snowpark-python')
  IMPORTS = ('@mystage/my_py_file.py')
  HANDLER = 'my_py_file.run';
2:
A stored procedure that uses code uploaded from a stage in the Python file
select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
6 on the internal stage
CREATE OR REPLACE PROCEDURE MYPROC(from_table STRING, to_table STRING, count INT)
  RETURNS INT
  LANGUAGE PYTHON
  RUNTIME_VERSION = '3.8'
  PACKAGES = ('snowflake-snowpark-python')
  IMPORTS = ('@mystage/my_py_file.py')
  HANDLER = 'my_py_file.run';
2:

def run(session, from_table, to_table, count):
  session.table(from_table).limit(count).write.save_as_table(to_table)
  return "SUCCESS"
1

Gọi thủ tục lưu trữ của bạn

Để người dùng gọi một quy trình được lưu trữ, vai trò của người dùng phải có đặc quyền sử dụng cho quy trình được lưu trữ.USAGE privilege for the stored procedure.

Khi bạn có các đặc quyền gọi thủ tục được lưu trữ, bạn có thể sử dụng câu lệnh CALL để gọi thủ tục được lưu trữ. Ví dụ:CALL statement to call the stored procedure. For example:

def run(session, from_table, to_table, count):
  session.table(from_table).limit(count).write.save_as_table(to_table)
  return "SUCCESS"
2

Hạn chế ở

Các thủ tục lưu trữ Snowpark có những hạn chế sau:

  • Tạo quy trình không được hỗ trợ trong các thủ tục lưu trữ.

  • Chạy các truy vấn đồng thời không được hỗ trợ trong các thủ tục lưu trữ.

  • Nếu bạn đang thực hiện thủ tục được lưu trữ của mình từ một nhiệm vụ, bạn phải chỉ định kho khi tạo nhiệm vụ. .

  • Bạn không thể sử dụng API thực thi và nhận các lệnh, bao gồm

    select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
    
    8 và
    select * from information_schema.packages where package_name = 'snowflake-snowpark-python' order by version desc;
    
    9.

  • Hiện tại, bạn không thể sử dụng tên lược đồ ở vị trí giai đoạn khi bạn gọi

    def run(session, from_table, to_table, count):
    
    session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    0 hoặc
    def run(session, from_table, to_table, count):
    
    session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    1.

  • Khi bạn tải xuống các tệp từ giai đoạn sử dụng

    def run(session, from_table, to_table, count):
    
    session.table(from_table).limit(count).write.save_as_table(to_table)
      return "SUCCESS"
    
    1, việc khớp mẫu không được hỗ trợ.

Chúng ta có thể viết thủ tục được lưu trữ bằng Python không?

Chọn để tạo một quy trình được lưu trữ với mã nội tuyến hoặc với mã được tải lên từ một giai đoạn..
Trong một quy trình được lưu trữ nội tuyến, bạn viết mã Python của mình theo mệnh đề AS AS của câu lệnh Creat Creates.....
Trong một quy trình được lưu trữ được tạo bằng mã được tải lên từ một giai đoạn, bạn viết mã python của mình vào tệp nguồn .py ..

Làm cách nào để tạo một thủ tục được lưu trữ?

Làm thế nào để tạo một thủ tục được lưu trữ..
Trong Object Explorer, kết nối với một thể hiện của công cụ cơ sở dữ liệu và sau đó mở rộng thể hiện đó ..
Mở rộng cơ sở dữ liệu, mở rộng cơ sở dữ liệu AdventureWorks2019, sau đó mở rộng khả năng lập trình ..
Nhấp chuột phải vào các thủ tục được lưu trữ, sau đó nhấp vào thủ tục được lưu trữ mới ..

Thủ tục lưu trữ được lưu trữ là gì?

Thủ tục được lưu trữ là gì?Một quy trình được lưu trữ là mã SQL đã chuẩn bị mà bạn có thể lưu, vì vậy mã có thể được sử dụng lại nhiều lần.Vì vậy, nếu bạn có một truy vấn SQL mà bạn viết nhiều lần, hãy lưu nó dưới dạng thủ tục được lưu trữ, và sau đó chỉ cần gọi nó để thực hiện nó.a prepared SQL code that you can save, so the code can be reused over and over again. So if you have an SQL query that you write over and over again, save it as a stored procedure, and then just call it to execute it.