Files
aiData/DouYin/init_db.py

90 lines
3.3 KiB
Python
Raw Normal View History

2026-01-20 21:43:54 +08:00
import sys
import os
# Add project root to path
sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
import pymysql
from Config.Config import DORIS_HOST, DORIS_PORT, DORIS_USER, DORIS_PWD, DORIS_DATABASE
def init_db():
print(f"Connecting to {DORIS_HOST}:{DORIS_PORT}...")
try:
conn = pymysql.connect(
host=DORIS_HOST,
port=DORIS_PORT,
user=DORIS_USER,
password=DORIS_PWD,
database=DORIS_DATABASE,
charset='utf8mb4'
)
cursor = conn.cursor()
sql = """
CREATE TABLE IF NOT EXISTS t_douyin_record (
id VARCHAR(50) NOT NULL COMMENT "UUID",
video_name VARCHAR(500) COMMENT "视频名称",
original_text TEXT COMMENT "原始粘贴文本",
obs_url VARCHAR(500) COMMENT "OBS视频链接",
transcript TEXT COMMENT "文案内容",
status VARCHAR(20) COMMENT "状态: PROCESSING, COMPLETED, FAILED",
create_time DATETIME COMMENT "创建时间"
)
UNIQUE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES (
"replication_allocation" = "tag.location.default: 1"
);
"""
# Note: replication_num is deprecated in newer Doris, using replication_allocation.
# If it fails, I will revert to replication_num.
print("Executing CREATE TABLE...")
cursor.execute(sql)
print("Table t_douyin_record created (or already exists).")
cursor.close()
conn.close()
return True
except Exception as e:
print(f"Error: {e}")
# Try with replication_num if allocation fails
if "replication_allocation" in str(e):
print("Retrying with replication_num...")
try:
conn = pymysql.connect(
host=DORIS_HOST,
port=DORIS_PORT,
user=DORIS_USER,
password=DORIS_PWD,
database=DORIS_DATABASE,
charset='utf8mb4'
)
cursor = conn.cursor()
sql = """
CREATE TABLE IF NOT EXISTS t_douyin_record (
id VARCHAR(50) NOT NULL COMMENT "UUID",
video_name VARCHAR(500) COMMENT "视频名称",
original_text TEXT COMMENT "原始粘贴文本",
obs_url VARCHAR(500) COMMENT "OBS视频链接",
transcript TEXT COMMENT "文案内容",
status VARCHAR(20) COMMENT "状态: PROCESSING, COMPLETED, FAILED",
create_time DATETIME COMMENT "创建时间"
)
UNIQUE KEY(id)
DISTRIBUTED BY HASH(id) BUCKETS 1
PROPERTIES (
"replication_num" = "1"
);
"""
cursor.execute(sql)
print("Table t_douyin_record created with replication_num.")
cursor.close()
conn.close()
return True
except Exception as e2:
print(f"Retry Error: {e2}")
return False
if __name__ == "__main__":
init_db()