Я бы вызвал /api/2.0/pipelines/{pipeline_id}/stop, чтобы управлять конвейером. Это означает, что у меня должен быть доступ для получения конвейеров.
Я провел небольшое исследование и обнаружил, что тип конвейера обновления материализованного представления — это конвейер DBSQL, а не обычный конвейер DTL. Из-за этого я не могу использовать API конвейеров для получения этих конвейеров.
Есть ли какие-либо другие способы или API, которые я могу использовать для получения идентификатора конвейера обновления материализованного представления и последующего управления ими?
def search_and_cancel_pipeline_by_name_pattern(pipeline_name_pattern):
"""
List pipelines using the filter parameter, paginate if needed, and cancel matching pipelines.
"""
try:
pattern = re.compile(pipeline_name_pattern)
page_token = None
found = False
while True:
params = {
"max_results": 10,
"order_by": "name asc"
}
# Use filter if possible to reduce client-side filtering
# Convert regex to SQL LIKE pattern if possible
# For example: r".*foo.*" -> "%foo%"
pipelines_url = f"{DATABRICKS_INSTANCE}/api/2.0/pipelines"
response = requests.get(pipelines_url, headers=headers, params=params)
response.raise_for_status()
data = response.json()
print(json.dumps(data, indent=2, ensure_ascii=False)) # Print full response
pipelines = data.get('statuses', [])
print(f"Total pipelines fetched: {len(pipelines)}.")
for pipeline in pipelines:
pipeline_id = pipeline.get('pipeline_id')
pipeline_name = pipeline.get('name', '')
state = pipeline.get('state', '')
print(f"PipelineID: {pipeline_id}, Name: {pipeline_name}, State: {state}")
if pipeline_name and pattern.match(pipeline_name):
stop_url = f"{DATABRICKS_INSTANCE}/api/2.0/pipelines/{pipeline_id}/stop"
resp = requests.post(stop_url, headers=headers)
resp.raise_for_status()
print(f"
found = True
page_token = data.get("next_page_token")
if not page_token:
break
if not found:
print(f"No pipeline matched regex '{pipeline_name_pattern}'.")
except requests.exceptions.RequestException as e:
print(f"Error occurred during operation: {e}")
Подробнее здесь: https://stackoverflow.com/questions/798 ... eline-type
Мобильная версия