From 459dd5a27fb5b70c2583b4d1c414651ef414c998 Mon Sep 17 00:00:00 2001 From: "zongsi.zhang" Date: Thu, 26 Sep 2024 11:09:39 +0800 Subject: [PATCH] README for run operator (#14) --- README.md | 96 ++++++++++++++++++++++++++++++++++++++++++++--- doc/runtimes.png | Bin 0 -> 61568 bytes pyproject.toml | 2 +- 3 files changed, 91 insertions(+), 7 deletions(-) create mode 100644 doc/runtimes.png diff --git a/README.md b/README.md index 963823a..e7849bb 100644 --- a/README.md +++ b/README.md @@ -18,12 +18,10 @@ Otherwise, just `pip install` it: $ pip install airflow-providers-wherobots ``` -## Usage - -### Create a connection +### Create an http connection -You first need to create a Connection in Airflow. This can be done from -the UI, or from the command-line. The default Wherobots connection name +Create a Connection in Airflow. This can be done from Apache Airflow's [Web UI](https://airflow.apache.org/docs/apache-airflow/stable/howto/connection.html#creating-connection-ui), +or from the command-line. The default Wherobots connection name is `wherobots_default`; if you use another name you must specify that name with the `wherobots_conn_id` parameter when initializing Wherobots operators. @@ -39,6 +37,92 @@ $ airflow connections add "wherobots_default" \ --conn-password "$(< api.key)" ``` +## Usage + +### Execute a `Run` on Wherobots Cloud + +Wherobots allows users to upload their code (.py, .jar), +execute it on the cloud, and monitor the status of the run. +Each execution is called a `Run`. + +The `WherobotsRunOperator` allows you to execute a `Run` on Wherobots Cloud. +`WherobotsRunOperator` triggers the run according to the parameters you provide, +and waits for the run to finish before completing the task. + +Refer to the [Wherobots Managed Storage Documentation](https://docs.wherobots.com/latest/develop/storage-management/storage/) +to learn more about how to upload and manage your code on Wherobots Cloud. + +Below is an example of `WherobotsRunOperator` + +```python +operator = WherobotsRunOperator( + task_id="your_task_id", + name="airflow_operator_test_run_{{ ts_nodash }}", + run_python={ + "uri": "s3://wbts-wbc-m97rcg45xi/42ly7mi0p1/data/shared/classification.py" + }, + runtime="tiny-a10-gpu", + dag=dag, + poll_logs=True, + ) +``` + +#### Arguments + +The arguments for the `WherobotsRunOperator` constructor: + +The `run_*` arguments are mutually exclusive, you can only specify one of them. +* `name: str`: The name of the run. + If not specified, a default name will be + generated. +* `runtime: str`: The runtime decides the size of the workloads that execute the run. + The default value is `tiny`. + Find the list of available runtimes in your Wherobots Cloud account + -> Organization Settings -> General -> RUNTIME CONFIGURATION. + + Find the runtime IDs in the bracket on the right side of the city name. + + ![runtimes.png](doc%2Fruntimes.png) + +* `poll_logs: bool`: If `True`, the operator will poll the logs of the run until it finishes. + If `False`, the operator will not poll the logs, just track the status of the run. +* `polling_interval`: The interval in seconds to poll the status of the run. + The default value is `30`. +* `run_python: dict`: A dictionary with the following keys: + * `uri: str`: The URI of the Python file to run. + * `args: list[str]`: A list of arguments to pass to the Python file. +* `run_jar: dict`: A dictionary with the following keys: + * `uri: str`: The URI of the JAR file to run. + * `args: list[str]`: A list of arguments to pass to the JAR file. + * `mainClass: str`: The main class to run in the JAR file. +* `environment: dict`: A dictionary with the following keys: + * `sparkDriverDiskGB: int`: The disk size for the Spark driver. + * `sparkExecutorDiskGB: int`: The disk size for the Spark executor. + * `sparkConfigs: dict`: A dictionary of Spark configurations. + * `dependencies: list[dict]`: A list of dependant libraries to install. + +The `dependencies` argument is a list of dictionaries. +There are two types of dependencies supported. + +1. `PYPI` dependencies: +```json +{ + "sourceType": "PYPI", + "libraryName": "package_name", + "libraryVersion": "package_version" +} +``` + +2. `FILE` dependencies: +```json +{ + "sourceType": "FILE", + "filePath": "s3://bucket/path/to/dependency.whl" +} +``` +File types supported: `.whl`, `.zip`, `.jar` + + ### Execute a SQL query The `WherobotsSqlOperator` allows you to run SQL queries on the @@ -54,7 +138,7 @@ SQL with WherobotsDB. Refer to the [Wherobots Apache Airflow Provider Documentation](https://docs.wherobots.com/latest/develop/airflow-provider) to get more detailed guidance about how to use the Wherobots Apache Airflow Provider. -## Example +#### Example Below is an example Airflow DAG that executes a SQL query on Wherobots Cloud: diff --git a/doc/runtimes.png b/doc/runtimes.png new file mode 100644 index 0000000000000000000000000000000000000000..f5d5bc61477d54c1c2e1fa89862036d7f7a9311f GIT binary patch literal 61568 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
hZ4+rYyIS+e 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

pH{aO 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"] readme = "README.md"