class PublicKey(BaseModel): """Public cryptographic keys model.""" user_id = columns.UUID(primary_key=True) resource_id = columns.UUID(primary_key=True) # clustering key key_id = columns.UUID(primary_key=True) # clustering key resource_type = columns.Text() label = columns.Text() date_insert = columns.DateTime(default=datetime.utcnow) date_update = columns.DateTime() expire_date = columns.DateTime() emails = columns.List(columns.Text()) key = columns.Text() fingerprint = columns.Text() size = columns.VarInt() # JWT parameters kty = columns.Text() # rsa / ec use = columns.Text() # sig / enc alg = columns.Text() # algorithm # Elliptic curve public key parameters (rfc7518 6.2.1) crv = columns.Text() x = columns.VarInt() y = columns.VarInt()
class QueryDetail2(Model): """ 请求详情日志 冗余 多级主键,可以查询 20200124 这一天,沃信分产品,具体到每一个 API 请求的详情 """ __table_name__ = 'query_detail2' # QueryDetail 保持一致 time_code = columns.Text(primary_key=True) # 统计日期 20200124 product_name = columns.Text(primary_key=True) # 产品名称 result = columns.Text(primary_key=True) # 查询结果: 查得、未查得、出错、超时 query_id = columns.Text(primary_key=True) # 请求序列号 time = columns.Text(required=False) # 请求时间: 2020-02-21 10:20:40 price_rule = columns.Text(required=False) # 计价方式: 查得计费、字段计费、查询计费(由产品决定) unit_price = columns.VarInt(default=0) # 单价 request = columns.Text(required=False) # 请求数据(脱敏后) response = columns.Text(required=False) # 响应数据(脱敏后) status_code = columns.Text(required=False) # 返回代码 return_time = columns.Text(required=False) # 返回时间 period = columns.Text(required=False) # 响应时间(毫秒) product_code = columns.Text(required=False) # 产品编码 remark = columns.Text(required=False) # 备注 def save_redundant(self): pass
class QueryDetail(Model): """ 请求详情日志,每一次对钛旗云 API 对调用生成一条记录 以 query_id 为主键 """ __table_name__ = 'query_detail' query_id = columns.Text(primary_key=True) # 请求序列号 time_code = columns.Text(required=False) # 统计日期 20200124 product_name = columns.Text(required=False) # 产品名称 result = columns.Text(required=False) # 查询结果: 查得、未查得、出错、超时 time = columns.Text(required=False) # 请求时间: 2020-02-21 10:20:40 price_rule = columns.Text(required=False) # 计价方式: 查得计费、字段计费、查询计费(由产品决定) unit_price = columns.VarInt(default=0) # 单价 request = columns.Text(required=False) # 请求数据(脱敏后) response = columns.Text(required=False) # 响应数据(脱敏后) status_code = columns.Text(required=False) # 返回代码 return_time = columns.Text(required=False) # 返回时间 period = columns.Text(required=False) # 响应时间(毫秒) product_code = columns.Text(required=False) # 产品编码 remark = columns.Text(required=False) # 备注 def save_redundant(self): """ 保存冗余数据 """ detail2 = QueryDetail2() for name, value in self.items(): setattr(detail2, name, value) detail2.save()
class QueryStatistics(Model): """ 请求统计日志,以时间、产品、查询结果、响应时间 4个维度来统计 例如:20200124这一天,沃信分产品,查得 的请求数量为 5000 又如:202001这个月,沃信分产品,未查得,响应时间在1-3秒内的请求数量为 8000 """ __table_name__ = 'query_statistics' time_code = columns.Text(primary_key=True) # 统计时间 2020 / 202001 / 20200124 product_name = columns.Text(primary_key=True) # 产品名称 result = columns.Text(primary_key=True) # 查询结果: 查得、未查得、出错、超时 period = columns.Text(primary_key=True) # 响应时间: '1秒以内', '1-3秒内', '3-6秒内', '6-10秒内', '10-15秒内', '15秒以上' count = columns.VarInt(default=0) # 调用次数 price_rule = columns.Text(required=False) # 计价方式: 查得计费、字段计费、查询计费(由产品决定) unit_price = columns.VarInt(default=0) # 单价 price = columns.VarInt(default=0) # 总价 product_code = columns.Text(required=False) # 产品编码 remark = columns.Text(required=False) # 备注
class AllDatatypes(UserType): a = columns.Ascii() b = columns.BigInt() c = columns.Blob() d = columns.Boolean() e = columns.DateTime() f = columns.Decimal() g = columns.Double() h = columns.Float() i = columns.Inet() j = columns.Integer() k = columns.Text() l = columns.TimeUUID() m = columns.UUID() n = columns.VarInt()
class AllDatatypesModel(Model): id = columns.Integer(primary_key=True) a = columns.Ascii() b = columns.BigInt() c = columns.Blob() d = columns.Boolean() e = columns.DateTime() f = columns.Decimal() g = columns.Double() h = columns.Float() i = columns.Inet() j = columns.Integer() k = columns.Text() l = columns.TimeUUID() m = columns.UUID() n = columns.VarInt()
class BaseActivity(Model): feed_id = columns.Ascii(primary_key=True, partition_key=True) activity_id = columns.VarInt(primary_key=True, clustering_order='desc')