开发者社区 > 大数据与机器学习 > 大数据开发治理DataWorks > 正文

DataWorks中odpscmd 日志打印执行的sql可以吗?

DataWorks中odpscmd 日志打印执行的sql可以吗?

展开
收起
真的很搞笑 2023-05-21 17:32:39 223 0
4 条回答
写回答
取消 提交回答
  • 全栈JAVA领域创作者

    可以的。在DataWorks中,您可以通过配置odpscmd任务的日志级别为DEBUG或TRACE,来打印执行的SQL语句。具体操作步骤如下:

    1. 在DataWorks中,找到对应的odpscmd任务,双击打开任务配置页面。

    2. 找到“运行参数”选项卡,并设置日志级别为DEBUG或TRACE。

    3. 点击“保存”按钮后,再次运行odpscmd任务即可在日志中看到执行的SQL语句。

    注意:打印SQL语句可能会暴露您的数据隐私,请确保在合适的场景下进行打印。

    2023-05-24 23:41:50
    赞同 展开评论 打赏
  • 可以通过在odpscmd中设置loglevel为debug来打印执行的SQL语句。具体操作如下:

    1、在odpscmd中输入命令:set loglevel debug;,设置日志级别为debug。

    2、执行SQL语句,比如:select * from mytable;

    3、在控制台中可以看到打印出来的调试信息,包括执行的SQL语句。

    注意:开启debug日志级别会打印大量的调试信息,建议在需要排查问题时使用。

    2023-05-24 07:38:21
    赞同 展开评论 打赏
  • ODPScmd是DataWorks中的一个命令行工具,用于管理ODPS(阿里云的大数据平台)上的数据表和作业。ODPScmd本身不支持直接打印执行的SQL语句,但是你可以通过一些方法来实现这个需求。

    一种方法是使用ODPS的Web控制台来查看执行的SQL。你可以登录到ODPS控制台,选择相应的项目和表格,然后在左侧的“SQL执行历史”中查看最近执行的SQL语句。

    另一种方法是使用ODPS的API接口来获取执行的SQL语句。你可以编写一个Python脚本来调用ODPS API接口,并使用API返回的数据来打印执行的SQL语句。以下是一个示例代码:

    python import odps

    登录ODPS

    access_id = '<your_access_id>'
    access_key = '<your_access_key>'
    project_name = '<your_project_name>'
    odps_conn = odps.ODPS(access_id=access_id, access_key=access_key)
    project = odps_conn.projects().get(project_name).execute()

    执行SQL语句并打印执行结果

    sql_text = 'SELECT * FROM <your_table_name>'
    job = project.submit_job(sql_text, runner='SparkSQL', engine='sparksql')
    job.wait()
    print(job.outputs['QueryResult']) 这个示例代码使用了ODPS Python SDK来登录ODPS,并执行一个简单的SQL查询语句。然后,它打印了查询结果。你可以根据需要修改这个代码来获取执行的SQL语句。

    2023-05-23 17:42:14
    赞同 展开评论 打赏
  • odpscmd 默认情况下并不会将执行的 SQL 语句打印到日志中。但您可以通过以下方式启用 SQL 日志记录:

    创建日志表:在 MaxCompute 中创建一个日志表,用于记录执行的 SQL 语句和其他相关信息。您可以定义表的结构,例如包含执行时间、SQL 内容、执行结果等字段。

    修改 odpscmd 脚本:在执行 odpscmd 的脚本中,将每条 SQL 语句执行前后添加适当的命令,以将 SQL 内容和其他信息插入到日志表中。例如,您可以使用 INSERT INTO 语句将 SQL 语句和相关信息插入到日志表中。

    脚本示例:

    # 记录执行开始时间和 SQL 内容
    INSERT INTO log_table (execution_time, sql_content) VALUES (current_timestamp(), 'SELECT * FROM my_table');
    
    # 执行 SQL 语句
    SELECT * FROM my_table;
    
    # 记录执行结束时间和执行结果
    INSERT INTO log_table (execution_time, execution_result) VALUES (current_timestamp(), 'Execution completed.');
    

    通过这种方式,您可以自定义记录执行的 SQL 语句和其他信息到日志表中

    2023-05-23 17:36:51
    赞同 展开评论 打赏

DataWorks基于MaxCompute/Hologres/EMR/CDP等大数据引擎,为数据仓库/数据湖/湖仓一体等解决方案提供统一的全链路大数据开发治理平台。

相关产品

  • 大数据开发治理平台 DataWorks
  • 相关电子书

    更多
    SQL Server在电子商务中的应用与实践 立即下载
    GeoMesa on Spark SQL 立即下载
    原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载