Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何基于对命令提示的响应使气流任务失败_Sql Server_Airflow_Directed Acyclic Graphs - Fatal编程技术网

Sql server 如何基于对命令提示的响应使气流任务失败

Sql server 如何基于对命令提示的响应使气流任务失败,sql-server,airflow,directed-acyclic-graphs,Sql Server,Airflow,Directed Acyclic Graphs,我的任务是: def bcp_in(set): files = [] for file in glob.glob(Variable.get("temp_directory") + "offrs/{}*.txt".format(set)): files.append(file) print("LOCAL FILES {}".format(files)) for file in files: print('Importing File

我的任务是:

def bcp_in(set):
    files = []
    for file in glob.glob(Variable.get("temp_directory") + "offrs/{}*.txt".format(set)):
        files.append(file)
    print("LOCAL FILES {}".format(files))
    for file in files:
        print('Importing File {}'.format(file))
        cmd = '/opt/mssql-tools/bin/bcp buyerhero_staging.dbo.FILETYPE IN "{file}" -F2  -<<HOST>> -<<PASSWORD>> -S<<SERVER>> -t"|" -c'.format(table=set, file=file)
        print(os.popen(cmd).read())


BCP_Import_FILETYPE_Files = PythonOperator(
    task_id='BCP_Import_Files_to_DB3_Staging',
    python_callable=bcp_in,
    op_kwargs={'set': 'FILETYPE'},
    dag=dag
)
此BCP失败,但任务仍显示为绿色。如果我没有查看日志,我就不会知道如何进行故障排除

在这种情况下,我如何报告任务失败。
或者,如果更好的话……是否有更好的操作员将CSV/TXT文件输入MSSQL?谢谢。

您可以使用bcp选项将任何错误写入文件,然后使用文件的内容来决定任务是否成功。

使用
子流程。请选中“输出”
以运行命令,例如:

导入子流程
def bcp_输入(设置):
文件=[]
对于glob.glob(Variable.get(“temp_directory”)+“offrs/{}*.txt.format(set))中的文件:
追加(文件)
打印(“本地文件{}”。格式(文件))
对于文件中的文件:
打印('导入文件{}'。格式(文件))
cmd='/opt/mssql tools/bin/bcp buyerro_staging.dbo.FILETYPE在“{file}”-F2----S-t“|”-c.格式(table=set,file=file)
子进程检查输出(cmd)
详情:

如果返回代码非零,则会引发被调用的进程错误。CalledProcessError对象将在returncode属性中包含返回代码,在output属性中包含任何输出

[2020-01-23 02:45:08,786] {logging_mixin.py:95} INFO - Importing File /home/airflow/airflow/staging/FILETYPE_000000000000.csv
[2020-01-23 02:45:09,505] {logging_mixin.py:95} INFO - 
Starting copy...
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification
SQLState = 22005, NativeError = 0
Error = [Microsoft][ODBC Driver 17 for SQL Server]Invalid character value for cast specification

BCP copy in failed
[2020-01-23 02:45:09,505] {logging_mixin.py:95} INFO -