Есть ли способ запустить облачный конвейер объединения данных из локальной сети через python? - PullRequest
1 голос
/ 03 марта 2020

Я пытаюсь создать код, в котором мне нужно запустить конвейер слияния облачных данных из настольного приложения, которое я создаю. В настоящее время он находится на python. Может кто-нибудь предложить способ инициирования конвейера без использования пользовательского интерфейса объединения облачных данных Google и с некоторыми строками python кода.

Ответы [ 2 ]

1 голос
/ 04 марта 2020

Вы можете найти библиотеку PycURL , приближающуюся к cURL отправителю HTTP-методов на стороне клиента, или Запросы , которые можно использовать для запуска вызовов к упомянутой инвентаризации CDAP REST API из Python code.

В приведенном ниже примере показан код Python, предоставляющий метод HTTP POST для запуска
пакетного конвейера в PyCurl, для справки я использовал те же переменные среды, что и в документации ссылка , упомянутая @Edwin Elia:

Настройка переменных среды:

export AUTH_TOKEN=$(gcloud auth print-access-token)

export CDAP_ENDPOINT=$(gcloud beta data-fusion instances describe \
--location=<region> \
--format="value(apiEndpoint)" \
${INSTANCE_ID})v3/namespaces/namespace-id/apps/pipeline-name/workflows/DataPipelineWorkflow/start

Python фрагмент кода:

import pycurl
import os

CDAP_ENDPOINT = os.environ['CDAP_ENDPOINT']
AUTH_TOKEN = os.environ['AUTH_TOKEN']

c = pycurl.Curl()
c.setopt(pycurl.URL, CDAP_ENDPOINT)
c.setopt(pycurl.HTTPHEADER, ['Authorization: Bearer %s' %(AUTH_TOKEN)])
c.setopt(pycurl.POST, 1)
c.perform()
0 голосов
/ 04 марта 2020

Как упоминается в комментарии, @mk_sta, конвейеры Cloud Data Fusion могут запускаться с использованием REST API, а именно:

POST -H "Authorization: Bearer ${AUTH_TOKEN}" "${CDAP_ENDPOINT}/v3/namespaces/<namespace-id>/apps/<pipeline-name>/workflows/DataPipelineWorkflow/start"

. Для получения дополнительной информации см. Документацию .

...