国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Archery系統(tǒng)調(diào)用my2sql讀取binlog的功能優(yōu)化

這篇具有很好參考價(jià)值的文章主要介紹了Archery系統(tǒng)調(diào)用my2sql讀取binlog的功能優(yōu)化。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

Archery系統(tǒng)集成了my2sql工具,可以通過此功能分析MysQL的binlog,方便SQL回滾,還可以協(xié)助異常分析,定位問題。

優(yōu)化點(diǎn)

解析后沒有SQL語句返回,可能的原因是解析過程中遇到了錯(cuò)誤,而系統(tǒng)沒有捕獲錯(cuò)誤,更沒有將錯(cuò)誤異常返回給操作者。

此處的優(yōu)化,就是解決這一信息黑洞,排除因解析遇錯(cuò)而導(dǎo)致沒有SQL語句。換句話說,優(yōu)化后,當(dāng)解析過程中遇到Error或fatal時(shí),定會(huì)拋出錯(cuò)誤。

代碼位置

優(yōu)化代碼文件:..../sql/binlog.py

方法---def my2sql(request):

step 1 定義捕獲異常的正則表達(dá)式

在以下代碼的后面

    # 參數(shù)轉(zhuǎn)換
    cmd_args = my2sql.generate_args2cmd(args)

添加正則表達(dá)式

###### 添加個(gè)正則表達(dá)式,去判斷是不是結(jié)果中有fatal 或者 error
    ######例如[2019/01/12 16:37:51] [fatal] context.go:401 start postion(-start-file -start-pos) must less than stop position(-end-file -end-pos)
    fatal_pattern = r'^(\[)\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}\]\W+\[fatal\]'

    ######例如[2019/01/12 16:37:51] [error] binlogstreamer.go:77 close sync with err: ERROR 1236 (HY000): A slave with the same server_uuid/server_id as this slave has connected to the master;
    error_pattern = r'^(\[)\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2}\]\W+\[error\]'

    errmsgs = []
    ###2024011201

?step 2 通過正則刷選返回的數(shù)據(jù)

改造前的代碼

            if n <= num and isinstance(line, str):
                if line[0:6].upper() in ("INSERT", "DELETE", "UPDATE"):
                    n = n + 1
                    row_info = {}
                    try:
                        row_info["sql"] = line + ";"
                    except IndexError:
                        row_info["sql"] = line + ";"
                    rows.append(row_info)
            else:
                break

改造后的代碼

            if n <= num and isinstance(line, str):
                if line[0:6].upper() in ("INSERT", "DELETE", "UPDATE"):
                    n = n + 1
                    row_info = {}
                    try:
                        row_info["sql"] = line + ";"
                    except IndexError:
                        row_info["sql"] = line + ";"
                    rows.append(row_info)

                ### start add  利用正則判斷,篩選有結(jié)果中錯(cuò)誤的行數(shù)
                elif re.search(fatal_pattern,line) or rs.search(error_pattern,line):
                    n = n + 1
                    errmsgs.append(line + ';')
                    #err_info = {} ###注釋掉的這段代碼是把錯(cuò)誤信息當(dāng)初SQL信息,打印到前端SQL顯示端
                    #try:
                    #    err_info['sql'] = line + ';'
                    #except IndexError:
                    #    err_info['sql'] = line + ';'
                    #errmsgs.append(err_info)
                #####  end

            else:
                break

3.異常捕獲后,返回

修改前

        if rows.__len__() == 0:
            # 判斷是否有異常
            stderr = p.stderr.read()
            if stderr and isinstance(stderr, str):
                result["status"] = 1
                result["msg"] = stderr
                return HttpResponse(json.dumps(result), content_type="application/json")
        # 終止子進(jìn)程

修改后

        if rows.__len__() == 0:
            # 判斷是否有異常
            stderr = p.stderr.read()
            if stderr and isinstance(stderr, str):
                result["status"] = 1
                result["msg"] = stderr
                return HttpResponse(json.dumps(result), content_type="application/json")

        ###start add  將結(jié)果中錯(cuò)誤信息返回給前端
        if errmsgs.__len__() != 0:
           result['status'] = 1
           result['msg'] = errmsgs
           return HttpResponse(json.dumps(result, cls=ExtendJSONEncoder, bigint_as_string=True), content_type='application/json')
        ### end
        # 終止子進(jìn)程

?文章來源地址http://www.zghlxwxcb.cn/news/detail-807282.html

到了這里,關(guān)于Archery系統(tǒng)調(diào)用my2sql讀取binlog的功能優(yōu)化的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • NL2SQL進(jìn)階系列(1):DB-GPT-Hub、SQLcoder、Text2SQL開源應(yīng)用實(shí)踐詳解

    NL2SQL進(jìn)階系列(1):DB-GPT-Hub、SQLcoder、Text2SQL開源應(yīng)用實(shí)踐詳解

    NL2SQL基礎(chǔ)系列(1):業(yè)界頂尖排行榜、權(quán)威測評(píng)數(shù)據(jù)集及LLM大模型(Spider vs BIRD)全面對(duì)比優(yōu)劣分析[Text2SQL、Text2DSL] NL2SQL基礎(chǔ)系列(2):主流大模型與微調(diào)方法精選集,Text2SQL經(jīng)典算法技術(shù)回顧七年發(fā)展脈絡(luò)梳理 MindSQL 是一個(gè) Python RAG(檢索增強(qiáng)生成)庫,旨在僅使用幾行代碼來簡

    2024年04月27日
    瀏覽(23)
  • TEXT2SQL-頂峰:Vanna部署及介紹

    TEXT2SQL-頂峰:Vanna部署及介紹

    Vanna 是一款采用 MIT 許可的開源 Python RAG (檢索增強(qiáng)生成)框架,用于生成 SQL 語句和相關(guān)功能。 如何使用 Vanna Vanna 的使用分為兩個(gè)簡單步驟 - 在你的數(shù)據(jù)上訓(xùn)練一個(gè) RAG \\\"模型\\\",然后提出問題,該問題將返回可設(shè)置為自動(dòng)在你的數(shù)據(jù)庫上運(yùn)行的 SQL 查詢。 1. 在你的數(shù)據(jù)上訓(xùn)練一

    2024年02月22日
    瀏覽(19)
  • LLM在text2sql上的應(yīng)用

    目前,大模型的一個(gè)熱門應(yīng)用方向text2sql它可以幫助用戶快速生成想要查詢的SQL語句。那對(duì)于用戶來說,大部分簡單的sql都是正確的,但對(duì)于一些復(fù)雜邏輯來說,需要用戶在產(chǎn)出SQL的基礎(chǔ)上進(jìn)行簡單修改,Text2SQL應(yīng)用主要還是幫助用戶去解決開發(fā)時(shí)間,減少開發(fā)成本。 Text to

    2024年02月08日
    瀏覽(22)
  • 【REST2SQL】05 GO 操作 達(dá)夢(mèng) 數(shù)據(jù)庫

    【REST2SQL】05 GO 操作 達(dá)夢(mèng) 數(shù)據(jù)庫

    【REST2SQL】01RDB關(guān)系型數(shù)據(jù)庫REST初設(shè)計(jì) 【REST2SQL】02 GO連接Oracle數(shù)據(jù)庫 【REST2SQL】03 GO讀取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版實(shí)現(xiàn) 信創(chuàng)要求用國產(chǎn)數(shù)據(jù)庫,剛好有項(xiàng)目用的達(dá)夢(mèng),研究一下go如何操作達(dá)夢(mèng)數(shù)據(jù)庫 登錄 達(dá)夢(mèng) 官網(wǎng),有DM8開發(fā)版可以下載,我下載的是X86,Win

    2024年02月01日
    瀏覽(19)
  • 大模型LLM在 Text2SQL 上的應(yīng)用實(shí)踐

    大模型LLM在 Text2SQL 上的應(yīng)用實(shí)踐

    一、前言 目前,大模型的一個(gè)熱門應(yīng)用方向Text2SQL,它可以幫助用戶快速生成想要查詢的SQL語句,再結(jié)合可視化技術(shù)可以降低使用數(shù)據(jù)的門檻,更便捷的支持決策。本文將從以下四個(gè)方面介紹LLM在Text2SQL應(yīng)用上的基礎(chǔ)實(shí)踐。 · Text2SQL概述 · LangChain基礎(chǔ)知識(shí) · 基于SQLDatabaseCha

    2024年01月16日
    瀏覽(23)
  • 【REST2SQL】07 GO 操作 Mysql 數(shù)據(jù)庫

    【REST2SQL】07 GO 操作 Mysql 數(shù)據(jù)庫

    【REST2SQL】01RDB關(guān)系型數(shù)據(jù)庫REST初設(shè)計(jì) 【REST2SQL】02 GO連接Oracle數(shù)據(jù)庫 【REST2SQL】03 GO讀取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版實(shí)現(xiàn) 【REST2SQL】05 GO 操作 達(dá)夢(mèng) 數(shù)據(jù)庫 【REST2SQL】06 GO 跨包接口重構(gòu)代碼 MySQL是一個(gè)關(guān)系型數(shù)據(jù)庫管理系統(tǒng),由瑞典MySQL AB 公司開發(fā),屬于 Oracle旗

    2024年01月22日
    瀏覽(20)
  • 最強(qiáng)開源Text2SQL大模型本地部署的解決方案

    ??大家好,我是herosunly。985院校碩士畢業(yè),現(xiàn)擔(dān)任算法研究員一職,熱衷于機(jī)器學(xué)習(xí)算法研究與應(yīng)用。曾獲得阿里云天池比賽第一名,CCF比賽第二名,科大訊飛比賽第三名。擁有多項(xiàng)發(fā)明專利。對(duì)機(jī)器學(xué)習(xí)和深度學(xué)習(xí)擁有自己獨(dú)到的見解。曾經(jīng)輔導(dǎo)過若干個(gè)非計(jì)算機(jī)專業(yè)的

    2024年02月08日
    瀏覽(22)
  • 大模型 LLM RAG在 Text2SQL 上的應(yīng)用實(shí)踐

    大模型 LLM RAG在 Text2SQL 上的應(yīng)用實(shí)踐

    1. 前言 在上篇文章中「LLM Agent在Text2SQL應(yīng)用上的實(shí)踐」介紹了基于AI Agent來優(yōu)化LLM的Text2SQL轉(zhuǎn)換效果的實(shí)踐,除此之外我們還可以使用RAG(Retrieval-Augmented Generation)來優(yōu)化大模型應(yīng)用的效果。 本文將從以下4個(gè)方面探討通過RAG來優(yōu)化LLM的Text2SQL轉(zhuǎn)換效果。 1. RAG概述 2. 基于LangC

    2024年02月02日
    瀏覽(23)
  • 【REST2SQL】08 日志重構(gòu)增加輸出到文件log.txt

    【REST2SQL】08 日志重構(gòu)增加輸出到文件log.txt

    【REST2SQL】01RDB關(guān)系型數(shù)據(jù)庫REST初設(shè)計(jì) 【REST2SQL】02 GO連接Oracle數(shù)據(jù)庫 【REST2SQL】03 GO讀取JSON文件 【REST2SQL】04 REST2SQL第一版Oracle版實(shí)現(xiàn) 【REST2SQL】05 GO 操作 達(dá)夢(mèng) 數(shù)據(jù)庫 【REST2SQL】06 GO 跨包接口重構(gòu)代碼 【REST2SQL】07 GO 操作 Mysql 數(shù)據(jù)庫 原來的日志只輸出到控制臺(tái),關(guān)閉控制臺(tái)

    2024年02月01日
    瀏覽(19)
  • NL2SQL進(jìn)階系列(1):DB-GPT-Hub開源應(yīng)用實(shí)踐

    NL2SQL進(jìn)階系列(1):DB-GPT-Hub開源應(yīng)用實(shí)踐

    云鯨智能渠道運(yùn)營實(shí)習(xí)面經(jīng) 一直想找銷售實(shí)習(xí),但是日常銷售實(shí)習(xí)好難找。。。海投面試中拿到了這個(gè)崗位的offer,就給大家分享下這 ? 題解 | #驗(yàn)證IP地址# /** * 代碼中的類名、方法名、參數(shù)名已經(jīng)指定,請(qǐng)勿修改,直接返回方法規(guī)定的值即可 * * 驗(yàn)證I ? 題解 | #驗(yàn)證IP地址

    2024年04月23日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包