export interface OssColumn { name: string; type: string; } export interface GetOssTableSql { databaseName: string; tableName: string; endpoint: string, url: string; accessId: string; accessKey: string; columns: OssColumn[]; } export function getOssTableSql(conf: GetOssTableSql): string { const { databaseName, tableName, endpoint, url, accessId, accessKey, columns, } = conf; const fullTableName = `${databaseName}.${tableName}`; const columnStrArr = columns.map(({ name, type }) => ` ${name} ${type},`); const lastColumnStr = columnStrArr[columnStrArr.length - 1]; columnStrArr[columnStrArr.length - 1] = lastColumnStr.substring(0, lastColumnStr.lastIndexOf(',')); return [ `DROP TABLE IF EXISTS ${fullTableName};`, `CREATE TABLE IF NOT EXISTS ${fullTableName} (`, ...columnStrArr, ')', 'ENGINE = \'OSS\'', 'TABLE_PROPERTIES = \'{', ` "endpoint":"${endpoint}",`, ` "url":"${url}",`, ` "accessid":"${accessId}",`, ` "accesskey":"${accessKey}",`, ' "delimiter":",",', ' "skip_header_line_count":0', '}\';', ].join('\n'); }