最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

項目經(jīng)驗分享|openGauss 劉彤:盡情參與,享受開源的樂趣和機遇

2023-09-26 16:59 作者:開源之夏  | 我要投稿


開源之夏個人專訪與項目經(jīng)驗分享持續(xù)開放中,歡迎已從開源之夏畢業(yè)或正在參與開源之夏活動的學(xué)生、導(dǎo)師一同加入專訪行動,掃描文末二維碼填寫專訪問卷,與大家分享你眼中的開源之夏!

本期項目經(jīng)驗分享來自 openGauss?社區(qū)中選學(xué)生——劉彤,在開源之夏 2023 中承擔(dān)的項目是?openGauss 運維輔助工具。

#?關(guān)于 openGauss

openGauss 是一款開源關(guān)系型數(shù)據(jù)庫管理系統(tǒng),采用木蘭寬松許可證 v2 發(fā)行。openGauss 內(nèi)核深度融合華為在數(shù)據(jù)庫領(lǐng)域多年的經(jīng)驗,結(jié)合企業(yè)級場景需求,持續(xù)構(gòu)建競爭力特性。同時 openGauss 也是一個開源的數(shù)據(jù)庫平臺,鼓勵社區(qū)貢獻、合作。

官網(wǎng):https://opengauss.org/zh/

# 項目基本信息

項目名稱:openGauss 運維輔助工具

項目導(dǎo)師:戴明明

項目描述:基于 GO 或者 Python,對常用的 openGauss 管理和運維進行封裝,通過封裝后的命令,可以快速執(zhí)行操作。

項目鏈接:

https://summer-ospp.ac.cn/org/prodetail/23c9e0545


# 項目經(jīng)驗分享

1. 項目描述

開發(fā)封裝工具可以簡化數(shù)據(jù)庫管理和運維操作,通過簡單的命令就能夠執(zhí)行常見的 openGauss 管理任務(wù),提供清晰的分類、詳細的文檔說明和持續(xù)的更新,使復(fù)雜的任務(wù)變得更加容易執(zhí)行,減少錯誤風(fēng)險,增強用戶友好性,同時可以快速部署和擴展,適應(yīng)不斷變化的需求,對于實現(xiàn) openGauss 管理具有現(xiàn)實意義。

2. 項目實現(xiàn)思路

首先需要進行數(shù)據(jù)庫連接配置文件地設(shè)置,確保配置文件的可管理性和易擴展性,將配置文件放置在一個統(tǒng)一的位置,以確保用戶可以正確連接到數(shù)據(jù)庫,隨后通過執(zhí)行系統(tǒng)命令連接到 openGauss 數(shù)據(jù)庫并執(zhí)行 SQL 命令。它接受一個 SQL 命令作為參數(shù),構(gòu)建完整的命令,并使用 Python 的 subprocess 模塊執(zhí)行并返回執(zhí)行命令的結(jié)果。

def execute_database_command(command):
 ? ?"""
 ? ?連接到OpenGauss數(shù)據(jù)庫并執(zhí)行命令.
 ? ?:param command: string, SQL命令
 ? ?:return:
 ? ? ? ?string, 執(zhí)行命令的結(jié)果
 ? ?"""
 ? ?# 構(gòu)建連接命令
 ? ?connect_command = f'gsql -d {database} -p {port}'
 ? ?# 構(gòu)建完整命令
 ? ?full_command = f'{connect_command} -c "{command};"'
 ? ?# 執(zhí)行命令并獲得輸出
 ? ?output = subprocess.getoutput(full_command)
 ? ?return output

隨后梳理常用的運維和優(yōu)化功能,如參數(shù)修改、性能查看、故障處理等分類,整理相關(guān)的命令或 SQL 語句,需要深入了解數(shù)據(jù)庫管理的常見任務(wù)和需求,并通過合適的資源整理出相關(guān)的命令或 SQL 語句。按照要求實現(xiàn)相關(guān)功能,如查看對象大小、創(chuàng)建快照、查看長 SQL、查看數(shù)據(jù)庫負載等。

def all_tables_def(show_help=False):
 ? ?"""
 ? ?查看所有表的定義語句, 并通過prettyTable格式化輸出.
 ? ?:param show_help: boolean, 是否顯示幫助信息
 ? ?:return:
 ? ? ? ?若show_help為true,返回命令幫助
 ? ?"""
 ? ?if show_help:
 ? ? ? ?return "\n"+ "命令說明:".rjust(30)+"查看所有表的定義語句"
 ? ?command = f"SELECT pg_get_tabledef(c.oid) " \
 ? ? ? ? ? ? ?f"FROM pg_catalog.pg_class c " \
 ? ? ? ? ? ? ?f"WHERE c.relkind='r' AND c.relname NOT LIKE 'pg_%' AND c.relname NOT LIKE 'sql_%' " \
 ? ? ? ? ? ? ?f"ORDER BY c.relname;"
 ? ?output = execute_database_command(command)
 ? ?pretty_print(output)

接下來通過 prettytable 模塊對命令執(zhí)行的輸出進行格式化處理,提高輸出結(jié)果的可讀性和可視化程度,將文本數(shù)據(jù)以表格的形式呈現(xiàn),使數(shù)據(jù)更加清晰和易于理解。

def pretty_print(str):
 ? ?"""
 ? ?使用prettytable格式化輸出結(jié)果.
 ? ?:param str: string, 執(zhí)行命令獲取的結(jié)果
 ? ?:return:
 ? ? ? ?string,輸出結(jié)果
 ? ?"""
 ? ?rows = []
 ? ?for line in str.splitlines():
 ? ? ? ?if "|" in line:
 ? ? ? ? ? ?line = "dummy_clo | " + line
 ? ? ? ? ? ?rows.append([val.strip() for val in line.split("|")[1:]])
 ? ?if len(rows) == 0:
 ? ? ? ?print("\033[31m" + str + "\033[0m")
 ? ? ? ?return
 ? ?table = PrettyTable()
 ? ?i = 1
 ? ?for row in rows:
 ? ? ? ?if i == 1:
 ? ? ? ? ? ?row = [s.upper() for s in row]
 ? ? ? ? ? ?table.field_names = row
 ? ? ? ?else:
 ? ? ? ? ? ?table.add_row(row)
 ? ? ? ?i = i + 1
 ? ?table.align = "l" ? #設(shè)置左對齊
 ? ?print(table)

最后考慮錯誤處理和容錯機制。例如,當(dāng)用戶使用未定義的標識符或配置錯誤的 SQL 時,系統(tǒng)應(yīng)該給出相應(yīng)的錯誤提示,避免執(zhí)行不正確的 SQL 語句或命令。


# 開源之夏個人隨訪

--參與開源之夏和開源--

OSPP請簡單介紹一下自己。

劉彤我叫劉彤,來自山東青島,是上海海洋大學(xué)計算機技術(shù)專業(yè)的一名學(xué)生。

OSPP請問你是如何了解到并決定參與開源之夏活動的?在項目申請的過程中你都做過哪些準備?

劉彤通過一位同學(xué)的介紹,我首次了解到 GSoC,但是遺憾的是,知道的時候已經(jīng)臨近活動結(jié)束日期,所以沒有參與。在深入了解這個活動之后,發(fā)現(xiàn)了國內(nèi)舉辦的開源之夏活動,可以有機會參與開源活動,于是就開始準備。

在項目申請的過程中,首先積極地尋找適合我的開源組織,選擇了一個感興趣的課題。確定課題后,開始與社區(qū)成員建立聯(lián)系,了解他們的需求和期望。然后研究所選項目的描述和要求,閱讀相關(guān)文檔,嘗試理解項目的核心目標和所需的技術(shù)棧。最后,認真編寫項目申請書,提交申請,獲得參與活動的機會。

--參與開源社區(qū)--

OSPP介紹一下你眼中的 openGauss 社區(qū)吧。

劉彤openGauss 社區(qū)是一個充滿熱情、技術(shù)高超的團隊,不僅在數(shù)據(jù)庫領(lǐng)域有深厚的知識,還樂于分享和合作,讓人感到溫暖和歡迎,無論是開發(fā)者還是用戶,都能在這里找到學(xué)習(xí)和成長的機會。

OSPP你覺得在開源社區(qū)中進行開發(fā)工作是一種什么體驗?

劉彤在開源社區(qū)中進行開發(fā)工作是一種充滿挑戰(zhàn)與滿足感的體驗。它提供了機會貢獻代碼、學(xué)習(xí)新技術(shù)、與其他開發(fā)者合作、解決問題,很能夠豐富個人技能。

OSPP在開發(fā)過程中,社區(qū)和導(dǎo)師為你提供了怎樣的幫助?

劉彤在開發(fā)過程中,導(dǎo)師在整個項目期間起到了關(guān)鍵的指導(dǎo)作用,與我進行定期的會議,幫我助制定項目計劃,提供深入的技術(shù)見解,并在代碼審查和問題解決過程中提供解決反饋,鼓勵我獨立思考和解決問題,同時也為我提供資源和文檔,以支持我的項目進展。在社區(qū)中可以獲得問題反饋和建議,能夠幫助我了解項目需求,解決技術(shù)挑戰(zhàn)。

OSPP參與開源之夏活動以后讓你對開源和開源社區(qū)有了什么新的理解?之后是否打算繼續(xù)參與開源社區(qū)或開源項目?為什么?

劉彤我計劃繼續(xù)參與開源社區(qū)和開源項目。這次的開源之夏經(jīng)歷讓我深刻認識到了開源的真正價值,也提供了很多有趣的學(xué)習(xí)和協(xié)作機會。我相信持續(xù)參與開源社區(qū)將幫助我不斷提升技術(shù)能力,認識到更廣泛的開發(fā)者社區(qū),一起解決挑戰(zhàn)。

--收獲與寄語--

OSPP以你所在高校為例,你覺得高校學(xué)生開源參與度高嗎?開源對高校學(xué)生來說有什么意義?

劉彤開源參與度可能受學(xué)術(shù)壓力、缺乏意識、缺少機會等因素的影響不太高。然而,開源仍具有重要意義,可以為學(xué)生提供經(jīng)驗,發(fā)展技能并了解實際項目的運作方式。

OSPP有什么話想對打算參加開源之夏活動的學(xué)弟學(xué)妹們說?

劉彤這是個絕佳的機會,可以深入了解開源社區(qū),積累項目經(jīng)驗不要害怕挑戰(zhàn),勇敢踏出第一步,會發(fā)現(xiàn)這個經(jīng)歷會對個人職業(yè)和技術(shù)產(chǎn)生深遠影響。在這里,將有機會結(jié)交志同道合的朋友,學(xué)到很多實際的技能,還可以為有趣的項目做出貢獻。最重要的是,不要害怕出錯或提問題,因為開源社區(qū)是一個互幫互助的地方,大家都非常友善。所以,盡情地參與,享受這個充滿樂趣和機遇的旅程吧!

END

專欄編輯:大夢

校對:校大山、劉彤

制圖:GoodWhite

專欄投稿請聯(lián)系開源小助手:kaiyuanzhixia 或?qū)诰庉嫞篐ungryfish34(備注“專欄投稿”加速通過),或填寫下方專訪信息收集問卷。


項目經(jīng)驗分享|openGauss 劉彤:盡情參與,享受開源的樂趣和機遇的評論 (共 條)

分享到微博請遵守國家法律
从江县| 鄢陵县| 开封市| 青铜峡市| 巫溪县| 宁城县| 南部县| 庆元县| 渭南市| 舒城县| 龙江县| 吴桥县| 科技| 玉门市| 云和县| 黄平县| 依兰县| 大余县| 广德县| 射洪县| 吉木乃县| 襄垣县| 景东| 徐水县| 石屏县| 保定市| 三穗县| 仁怀市| 洞口县| 彭阳县| 海晏县| 雷州市| 长垣县| 炉霍县| 百色市| 襄樊市| 上高县| 米泉市| 盐源县| 班玛县| 石嘴山市|