Files
data-engine/sql/seed_data.sql

261 lines
12 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- =============================================
-- 数据引擎初始化数据脚本
-- 执行前请先执行 init_core_tables.sql
-- =============================================
-- =============================================
-- 1. 创建腾讯广告平台
-- 认证方式OAuth2access_token 放在 URL 查询参数
-- API Base: https://api.e.qq.com/v3.0
-- =============================================
INSERT INTO api_datasource_platform (
tenant_id, creator, created_at, updater, updated_at,
platform_code, platform_name, description, status,
api_base_url, auth_type,
token, client_id, client_secret,
auth_config,
rate_limit_per_minute, rate_limit_per_hour,
concurrency_limit, request_timeout_ms, max_retries, retry_delay_ms
) VALUES (
1, 'admin', NOW(), 'admin', NOW(),
'tencent', '腾讯广告', '腾讯广告(广点通)数据同步', 'ACTIVE',
'https://api.e.qq.com/v3.0', 'OAUTH2',
'4bacfc7c9b0a31f70ec0eb4771f8b542',
'1112038234', 'GxyjXFbZAs5dnsNQ',
'{
"token_in_query": true,
"query_key": "access_token",
"refresh_token": "d15b37363a42449026d337708516e95e",
"extra_query_params": {
"timestamp": "{timestamp}",
"nonce": "{nonce}"
}
}'::jsonb,
60, 3600, 10, 30000, 3, 1000
);
-- =============================================
-- 2. 创建腾讯广告的接口配置
-- 接口前缀https://api.e.qq.com/v3.0
-- =============================================
-- 2.1 账户关系接口先获取所有账户ID
-- 出参:{"code":0, "message":"ok", "data":{"list":[...], "page_info":{...}}}
-- 列表路径data.list分页data.page_info.total_page
INSERT INTO api_interface (
tenant_id, creator, created_at, updater, updated_at,
platform_id, name, code, url, method, status, auth_type,
request_config, response_config, table_definition
) VALUES (
1, 'admin', NOW(), 'admin', NOW(),
(SELECT id FROM api_datasource_platform WHERE platform_code = 'tencent'),
'账户列表', 'account_relation',
'/advertiser/get', 'GET', 'active', 'inherit',
'{
"parameters_location": "query",
"page": 1,
"page_size": 100,
"page_param": "page",
"page_size_param": "page_size",
"pagination_mode": "PAGINATION_MODE_NORMAL",
"fields": ["account_id", "corporation_name", "is_adx", "is_bid", "is_mp"]
}'::jsonb,
'{
"success_field": "code",
"success_value": 0,
"message_field": "message",
"list_path": "data.list"
}'::jsonb,
'{
"table_name": "tencent_account_relation",
"columns": [
{"name": "account_id", "type": "BIGINT", "comment": "账户ID"},
{"name": "corporation_name", "type": "VARCHAR(300)", "comment": "企业名称"},
{"name": "is_adx", "type": "BOOLEAN", "comment": "是否ADX账户"},
{"name": "is_bid", "type": "BOOLEAN", "comment": "是否竞价账户"},
{"name": "is_mp", "type": "BOOLEAN", "comment": "是否MP账户"}
],
"conflict_keys": ["account_id"]
}'::jsonb
);
-- 2.2 图片素材接口(遍历每个账户拉取图片)
-- 出参:{"code":0, "message":"ok", "data":{"list":[...], "page_info":{...}}}
-- 列表路径data.list分页data.page_info.total_page
INSERT INTO api_interface (
tenant_id, creator, created_at, updater, updated_at,
platform_id, name, code, url, method, status, auth_type,
request_config, response_config, table_definition
) VALUES (
1, 'admin', NOW(), 'admin', NOW(),
(SELECT id FROM api_datasource_platform WHERE platform_code = 'tencent'),
'图片素材', 'image',
'/images/get', 'GET', 'active', 'inherit',
'{
"parameters_location": "query",
"page": 1,
"page_size": 100,
"page_param": "page",
"page_size_param": "page_size",
"time_field": "last_modified_time",
"prefetch": {
"url": "/advertiser/get",
"method": "GET",
"response_path": "data.list",
"target_param": "account_id",
"value_field": "account_id"
}
}'::jsonb,
'{
"success_field": "code",
"success_value": 0,
"message_field": "message",
"list_path": "data.list"
}'::jsonb,
'{
"table_name": "tencent_image",
"columns": [
{"name": "image_id", "type": "VARCHAR(100)", "comment": "图片ID"},
{"name": "account_id", "type": "BIGINT", "comment": "账户ID"},
{"name": "width", "type": "INT", "comment": "宽度"},
{"name": "height", "type": "INT", "comment": "高度"},
{"name": "file_size", "type": "BIGINT", "comment": "文件大小"},
{"name": "type", "type": "VARCHAR(50)", "comment": "图片类型"},
{"name": "signature", "type": "VARCHAR(200)", "comment": "签名"},
{"name": "description", "type": "TEXT", "comment": "描述"},
{"name": "source_signature", "type": "VARCHAR(200)", "comment": "源签名"},
{"name": "preview_url", "type": "TEXT", "comment": "预览URL"},
{"name": "thumb_preview_url", "type": "TEXT", "comment": "缩略图URL"},
{"name": "source_type", "type": "VARCHAR(50)", "comment": "来源类型"},
{"name": "image_usage", "type": "VARCHAR(50)", "comment": "图片用途"},
{"name": "created_time", "type": "BIGINT", "comment": "创建时间戳"},
{"name": "last_modified_time", "type": "BIGINT", "comment": "最后修改时间戳"},
{"name": "status", "type": "VARCHAR(50)", "comment": "状态"},
{"name": "owner_account_id", "type": "VARCHAR(100)", "comment": "所有者账户ID"},
{"name": "first_publication_status", "type": "VARCHAR(50)", "comment": "首次发布状态"},
{"name": "quality_status", "type": "VARCHAR(50)", "comment": "质量状态"},
{"name": "aigc_flag", "type": "VARCHAR(50)", "comment": "AIGC标志"},
{"name": "aigc_type", "type": "INT", "comment": "AIGC类型"},
{"name": "verify_status", "type": "VARCHAR(50)", "comment": "校验状态"},
{"name": "verified_at", "type": "TIMESTAMP WITH TIME ZONE", "comment": "校验时间"},
{"name": "verified_by", "type": "VARCHAR(64)", "comment": "校验人"}
],
"conflict_keys": ["image_id", "account_id"]
}'::jsonb
);
-- 2.3 视频素材接口(遍历每个账户拉取视频)
-- 出参:{"code":0, "message":"ok", "data":{"list":[...], "page_info":{...}}}
-- 列表路径data.list分页data.page_info.total_page
INSERT INTO api_interface (
tenant_id, creator, created_at, updater, updated_at,
platform_id, name, code, url, method, status, auth_type,
request_config, response_config, table_definition
) VALUES (
1, 'admin', NOW(), 'admin', NOW(),
(SELECT id FROM api_datasource_platform WHERE platform_code = 'tencent'),
'视频素材', 'video',
'/videos/get', 'GET', 'active', 'inherit',
'{
"parameters_location": "query",
"page": 1,
"page_size": 100,
"page_param": "page",
"page_size_param": "page_size",
"time_field": "last_modified_time",
"prefetch": {
"url": "/advertiser/get",
"method": "GET",
"response_path": "data.list",
"target_param": "account_id",
"value_field": "account_id"
}
}'::jsonb,
'{
"success_field": "code",
"success_value": 0,
"message_field": "message",
"list_path": "data.list"
}'::jsonb,
'{
"table_name": "tencent_video",
"columns": [
{"name": "video_id", "type": "BIGINT", "comment": "视频ID"},
{"name": "account_id", "type": "BIGINT", "comment": "账户ID"},
{"name": "width", "type": "INT", "comment": "宽度"},
{"name": "height", "type": "INT", "comment": "高度"},
{"name": "video_frames", "type": "INT", "comment": "视频帧数"},
{"name": "video_fps", "type": "DECIMAL(10,2)", "comment": "视频帧率"},
{"name": "video_codec", "type": "VARCHAR(50)", "comment": "视频编码"},
{"name": "video_bit_rate", "type": "BIGINT", "comment": "视频比特率"},
{"name": "audio_codec", "type": "VARCHAR(50)", "comment": "音频编码"},
{"name": "audio_bit_rate", "type": "BIGINT", "comment": "音频比特率"},
{"name": "file_size", "type": "BIGINT", "comment": "文件大小"},
{"name": "type", "type": "VARCHAR(50)", "comment": "视频类型"},
{"name": "signature", "type": "VARCHAR(200)", "comment": "签名"},
{"name": "system_status", "type": "VARCHAR(50)", "comment": "系统状态"},
{"name": "description", "type": "TEXT", "comment": "描述"},
{"name": "preview_url", "type": "TEXT", "comment": "预览URL"},
{"name": "key_frame_image_url", "type": "TEXT", "comment": "关键帧图片URL"},
{"name": "created_time", "type": "BIGINT", "comment": "创建时间戳"},
{"name": "last_modified_time", "type": "BIGINT", "comment": "最后修改时间戳"},
{"name": "status", "type": "VARCHAR(50)", "comment": "状态"},
{"name": "owner_account_id", "type": "VARCHAR(100)", "comment": "所有者账户ID"},
{"name": "cover_id", "type": "VARCHAR(100)", "comment": "封面ID"},
{"name": "first_publication_status", "type": "VARCHAR(50)", "comment": "首次发布状态"},
{"name": "quality_status", "type": "VARCHAR(50)", "comment": "质量状态"},
{"name": "aigc_flag", "type": "VARCHAR(50)", "comment": "AIGC标志"},
{"name": "muse_aigc_version", "type": "INT", "comment": "Muse AIGC版本"},
{"name": "verify_status", "type": "VARCHAR(50)", "comment": "校验状态"},
{"name": "verified_at", "type": "TIMESTAMP WITH TIME ZONE", "comment": "校验时间"},
{"name": "verified_by", "type": "VARCHAR(64)", "comment": "校验人"}
],
"conflict_keys": ["video_id", "account_id"]
}'::jsonb
);
-- 2.4 音频素材接口POST + JSON Body无需遍历账户
-- 注意:此接口不依赖 account_id不依赖 prefetch不支持增量
-- 出参:{"code":0, "message":"ok", "data":{"list":[...], "page_info":{...}}}
-- 列表路径data.list分页data.page_info.total_page
INSERT INTO api_interface (
tenant_id, creator, created_at, updater, updated_at,
platform_id, name, code, url, method, status, auth_type,
request_config, response_config, table_definition
) VALUES (
1, 'admin', NOW(), 'admin', NOW(),
(SELECT id FROM api_datasource_platform WHERE platform_code = 'tencent'),
'音频素材', 'audio',
'/muse_audios/get', 'POST', 'active', 'inherit',
'{
"page": 1,
"page_size": 100,
"page_param": "page",
"page_size_param": "page_size",
"fields": ["audio_id", "cover_image_url", "audio_name", "author", "duration", "expire_time", "feel_tags", "genre_tags"]
}'::jsonb,
'{
"success_field": "code",
"success_value": 0,
"message_field": "message",
"list_path": "data.list"
}'::jsonb,
'{
"table_name": "tencent_audio",
"columns": [
{"name": "audio_id", "type": "VARCHAR(100)", "comment": "音乐ID"},
{"name": "audio_name", "type": "VARCHAR(500)", "comment": "音乐名称"},
{"name": "author", "type": "VARCHAR(200)", "comment": "作者"},
{"name": "duration", "type": "DECIMAL(10,2)", "comment": "时长(秒)"},
{"name": "cover_image_url", "type": "TEXT", "comment": "封面图片URL"},
{"name": "expire_time", "type": "BIGINT", "comment": "过期时间戳"},
{"name": "feel_tags", "type": "JSONB", "comment": "情感标签"},
{"name": "genre_tags", "type": "JSONB", "comment": "风格标签"},
{"name": "verify_status", "type": "VARCHAR(50)", "comment": "校验状态"},
{"name": "verified_at", "type": "TIMESTAMP WITH TIME ZONE", "comment": "校验时间"},
{"name": "verified_by", "type": "VARCHAR(64)", "comment": "校验人"}
],
"conflict_keys": ["audio_id"]
}'::jsonb
);