LogViewer
=========================================================================
2025-08-22 16:25:22 Fri	START TASK.01	future_1d  future_rank
=========================================================================
2025-08-22 16:25:24,107 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-22 16:25:24,195 - future_1d - INFO - future_rank date = 2025-08-14
2025-08-22 16:25:24,284 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CFFEX) done
2025-08-22 16:25:24,379 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='DCE) done
2025-08-22 16:25:24,464 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='GFEX) done
2025-08-22 16:25:24,530 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='INE) done
2025-08-22 16:25:24,701 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CZCE) done
2025-08-22 16:25:24,842 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='SHFE) done
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 365")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/project/future_1d/future_rank.py", line 8, in 
    client.save_future_rank(check=True, check_last=7)
  File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
    data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
  File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
    return sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
    return pandas_sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
    total_inserted = sql_engine.insert_records(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
    raise err
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
    return table.insert(chunksize=chunksize, method=method)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
    num_inserted = exec_insert(conn, keys, chunk_iter)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
    result = conn.execute(self.table.insert(), data)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 365")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '中泰期货(代客)', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 15983.0, 'long_chg': 2373.0, 'short_hld': 13995.0, 'short_chg': 419.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '中金岭南(代客)', 'vol': 22040.0, 'vol_chg': -1252.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '乾坤期货(代客)', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 35609.0, 'short_chg': 7694.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '五矿期货(代客)', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 22038.0, 'short_chg': -187.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '创元期货(代客)', 'vol': 24445.0, 'vol_chg': 7686.0, 'long_hld': 13897.0, 'long_chg': 7620.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '华泰期货(代客)', 'vol': 38715.0, 'vol_chg': -6505.0, 'long_hld': 33461.0, 'long_chg': 3439.0, 'short_hld': 38553.0, 'short_chg': 2294.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '华闻期货(代客)', 'vol': 47915.0, 'vol_chg': 19760.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '南华期货(代客)', 'vol': 34853.0, 'vol_chg': 7912.0, 'long_hld': 16204.0, 'long_chg': -974.0, 'short_hld': 15174.0, 'short_chg': -2671.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}  ... displaying 10 of 1000 total bound parameter sets ...  {'date': '2025-08-14', 'symbol': 'AU2510', 'broker': '方正中期', 'vol': 4726.0, 'vol_chg': -1610.0, 'long_hld': 2184.0, 'long_chg': 90.0, 'short_hld': 1483.0, 'short_chg': 12.0, 'exchange': 'SHFE', 'variety': 'AU', 'comd': 'au', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}, {'date': '2025-08-14', 'symbol': 'AU2510', 'broker': '格林大华', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 678.0, 'short_chg': 69.0, 'exchange': 'SHFE', 'variety': 'AU', 'comd': 'au', 'created_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955486), 'updated_at': datetime.datetime(2025, 8, 22, 16, 25, 24, 955985)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-22 16:26:31 Fri	START TASK.01	future_1d  future_rank
=========================================================================
2025-08-22 16:26:33,368 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-22 16:26:33,450 - future_1d - INFO - future_rank date = 2025-08-14
2025-08-22 16:26:33,521 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='INE) done
2025-08-22 16:26:33,605 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='DCE) done
2025-08-22 16:26:33,682 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CFFEX) done
2025-08-22 16:26:33,837 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='SHFE) done
2025-08-22 16:26:33,990 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CZCE) done
2025-08-22 16:26:34,067 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='GFEX) done
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 1")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/project/future_1d/future_rank.py", line 8, in 
    client.save_future_rank(check=True, check_last=7)
  File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
    data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
  File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
    return sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
    return pandas_sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
    total_inserted = sql_engine.insert_records(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
    raise err
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
    return table.insert(chunksize=chunksize, method=method)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
    num_inserted = exec_insert(conn, keys, chunk_iter)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
    result = conn.execute(self.table.insert(), data)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 1")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-14', 'symbol': 'AD', 'broker': '期货公司会员/境外特殊经纪参与者', 'vol': 3448.0, 'vol_chg': -1248.0, 'long_hld': 9868.0, 'long_chg': -334.0, 'short_hld': 9868.0, 'short_chg': -334.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}, {'date': '2025-08-14', 'symbol': 'AD', 'broker': '非期货公司会员/境外特殊非经纪参与者', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东亚期货', 'vol': None, 'vol_chg': None, 'long_hld': 137.0, 'long_chg': -11.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东吴期货', 'vol': 66.0, 'vol_chg': -20.0, 'long_hld': None, 'long_chg': None, 'short_hld': 190.0, 'short_chg': -1.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东海期货', 'vol': 113.0, 'vol_chg': -38.0, 'long_hld': 224.0, 'long_chg': -1.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东证期货', 'vol': 138.0, 'vol_chg': 0.0, 'long_hld': 811.0, 'long_chg': -30.0, 'short_hld': 577.0, 'short_chg': -6.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信建投', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 265.0, 'short_chg': 13.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信期货', 'vol': 265.0, 'vol_chg': 0.0, 'long_hld': 794.0, 'long_chg': 33.0, 'short_hld': 672.0, 'short_chg': 16.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}  ... displaying 10 of 1000 total bound parameter sets ...  {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '山金期货', 'vol': None, 'vol_chg': None, 'long_hld': 35.0, 'long_chg': 0.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}, {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '广发期货', 'vol': 340.0, 'vol_chg': 0.0, 'long_hld': None, 'long_chg': None, 'short_hld': 320.0, 'short_chg': -55.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413072), 'updated_at': datetime.datetime(2025, 8, 22, 16, 26, 34, 413600)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-22 16:27:19 Fri	START TASK.01	future_1d  future_rank
=========================================================================
2025-08-22 16:27:21,718 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-22 16:27:21,802 - future_1d - INFO - future_rank date = 2025-08-14
2025-08-22 16:27:21,873 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='DCE) done
2025-08-22 16:27:22,023 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='SHFE) done
2025-08-22 16:27:22,199 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CZCE) done
2025-08-22 16:27:22,263 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='INE) done
2025-08-22 16:27:22,343 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='GFEX) done
2025-08-22 16:27:22,431 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CFFEX) done
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 1")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/project/future_1d/future_rank.py", line 8, in 
    client.save_future_rank(check=True, check_last=7)
  File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
    data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
  File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
    return sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
    return pandas_sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
    total_inserted = sql_engine.insert_records(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
    raise err
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
    return table.insert(chunksize=chunksize, method=method)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
    num_inserted = exec_insert(conn, keys, chunk_iter)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
    result = conn.execute(self.table.insert(), data)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 1")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-14', 'symbol': 'AD', 'broker': '期货公司会员/境外特殊经纪参与者', 'vol': 3448.0, 'vol_chg': -1248.0, 'long_hld': 9868.0, 'long_chg': -334.0, 'short_hld': 9868.0, 'short_chg': -334.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}, {'date': '2025-08-14', 'symbol': 'AD', 'broker': '非期货公司会员/境外特殊非经纪参与者', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东亚期货', 'vol': None, 'vol_chg': None, 'long_hld': 137.0, 'long_chg': -11.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东吴期货', 'vol': 66.0, 'vol_chg': -20.0, 'long_hld': None, 'long_chg': None, 'short_hld': 190.0, 'short_chg': -1.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东海期货', 'vol': 113.0, 'vol_chg': -38.0, 'long_hld': 224.0, 'long_chg': -1.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东证期货', 'vol': 138.0, 'vol_chg': 0.0, 'long_hld': 811.0, 'long_chg': -30.0, 'short_hld': 577.0, 'short_chg': -6.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信建投', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 265.0, 'short_chg': 13.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信期货', 'vol': 265.0, 'vol_chg': 0.0, 'long_hld': 794.0, 'long_chg': 33.0, 'short_hld': 672.0, 'short_chg': 16.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}  ... displaying 10 of 1000 total bound parameter sets ...  {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '山金期货', 'vol': None, 'vol_chg': None, 'long_hld': 35.0, 'long_chg': 0.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}, {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '广发期货', 'vol': 340.0, 'vol_chg': 0.0, 'long_hld': None, 'long_chg': None, 'short_hld': 320.0, 'short_chg': -55.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 767944), 'updated_at': datetime.datetime(2025, 8, 22, 16, 27, 22, 768377)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-22 16:28:22 Fri	START TASK.01	future_1d  future_rank
=========================================================================
2025-08-22 16:28:24,846 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-22 16:28:24,932 - future_1d - INFO - future_rank date = 2025-08-14
2025-08-22 16:28:25,011 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CFFEX) done
2025-08-22 16:28:25,105 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='DCE) done
2025-08-22 16:28:25,238 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='SHFE) done
2025-08-22 16:28:25,405 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CZCE) done
2025-08-22 16:28:25,484 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='GFEX) done
2025-08-22 16:28:25,565 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='INE) done
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 1")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/project/future_1d/future_rank.py", line 8, in 
    client.save_future_rank(check=True, check_last=7)
  File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
    data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
  File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
    return sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
    return pandas_sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
    total_inserted = sql_engine.insert_records(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
    raise err
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
    return table.insert(chunksize=chunksize, method=method)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
    num_inserted = exec_insert(conn, keys, chunk_iter)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
    result = conn.execute(self.table.insert(), data)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 1")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-14', 'symbol': 'AD', 'broker': '期货公司会员/境外特殊经纪参与者', 'vol': 3448.0, 'vol_chg': -1248.0, 'long_hld': 9868.0, 'long_chg': -334.0, 'short_hld': 9868.0, 'short_chg': -334.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}, {'date': '2025-08-14', 'symbol': 'AD', 'broker': '非期货公司会员/境外特殊非经纪参与者', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东亚期货', 'vol': None, 'vol_chg': None, 'long_hld': 137.0, 'long_chg': -11.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东吴期货', 'vol': 66.0, 'vol_chg': -20.0, 'long_hld': None, 'long_chg': None, 'short_hld': 190.0, 'short_chg': -1.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东海期货', 'vol': 113.0, 'vol_chg': -38.0, 'long_hld': 224.0, 'long_chg': -1.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东证期货', 'vol': 138.0, 'vol_chg': 0.0, 'long_hld': 811.0, 'long_chg': -30.0, 'short_hld': 577.0, 'short_chg': -6.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信建投', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 265.0, 'short_chg': 13.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信期货', 'vol': 265.0, 'vol_chg': 0.0, 'long_hld': 794.0, 'long_chg': 33.0, 'short_hld': 672.0, 'short_chg': 16.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}  ... displaying 10 of 1000 total bound parameter sets ...  {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '山金期货', 'vol': None, 'vol_chg': None, 'long_hld': 35.0, 'long_chg': 0.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}, {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '广发期货', 'vol': 340.0, 'vol_chg': 0.0, 'long_hld': None, 'long_chg': None, 'short_hld': 320.0, 'short_chg': -55.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905381), 'updated_at': datetime.datetime(2025, 8, 22, 16, 28, 25, 905824)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-22 18:25:17 Fri	START TASK.01	future_1d  future_rank
=========================================================================
2025-08-22 18:25:19,867 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-22 18:25:19,954 - future_1d - INFO - future_rank date = 2025-08-14
2025-08-22 18:25:20,132 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CZCE) done
2025-08-22 18:25:20,203 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='DCE) done
2025-08-22 18:25:20,300 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='INE) done
2025-08-22 18:25:20,388 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CFFEX) done
2025-08-22 18:25:20,463 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='GFEX) done
2025-08-22 18:25:20,589 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='SHFE) done
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 365")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/project/future_1d/future_rank.py", line 8, in 
    client.save_future_rank(check=True, check_last=7)
  File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
    data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
  File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
    return sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
    return pandas_sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
    total_inserted = sql_engine.insert_records(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
    raise err
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
    return table.insert(chunksize=chunksize, method=method)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
    num_inserted = exec_insert(conn, keys, chunk_iter)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
    result = conn.execute(self.table.insert(), data)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 365")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '中泰期货(代客)', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 15983.0, 'long_chg': 2373.0, 'short_hld': 13995.0, 'short_chg': 419.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '中金岭南(代客)', 'vol': 22040.0, 'vol_chg': -1252.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '乾坤期货(代客)', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 35609.0, 'short_chg': 7694.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '五矿期货(代客)', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 22038.0, 'short_chg': -187.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '创元期货(代客)', 'vol': 24445.0, 'vol_chg': 7686.0, 'long_hld': 13897.0, 'long_chg': 7620.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '华泰期货(代客)', 'vol': 38715.0, 'vol_chg': -6505.0, 'long_hld': 33461.0, 'long_chg': 3439.0, 'short_hld': 38553.0, 'short_chg': 2294.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '华闻期货(代客)', 'vol': 47915.0, 'vol_chg': 19760.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '南华期货(代客)', 'vol': 34853.0, 'vol_chg': 7912.0, 'long_hld': 16204.0, 'long_chg': -974.0, 'short_hld': 15174.0, 'short_chg': -2671.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}  ... displaying 10 of 1000 total bound parameter sets ...  {'date': '2025-08-14', 'symbol': 'AU2510', 'broker': '方正中期', 'vol': 4726.0, 'vol_chg': -1610.0, 'long_hld': 2184.0, 'long_chg': 90.0, 'short_hld': 1483.0, 'short_chg': 12.0, 'exchange': 'SHFE', 'variety': 'AU', 'comd': 'au', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}, {'date': '2025-08-14', 'symbol': 'AU2510', 'broker': '格林大华', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 678.0, 'short_chg': 69.0, 'exchange': 'SHFE', 'variety': 'AU', 'comd': 'au', 'created_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939492), 'updated_at': datetime.datetime(2025, 8, 22, 18, 25, 20, 939937)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-22 18:26:01 Fri	START TASK.01	future_1d  future_rank
=========================================================================
2025-08-22 18:26:03,561 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-22 18:26:03,646 - future_1d - INFO - future_rank date = 2025-08-14
2025-08-22 18:26:03,811 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CZCE) done
2025-08-22 18:26:03,880 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='DCE) done
2025-08-22 18:26:04,005 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='SHFE) done
2025-08-22 18:26:04,084 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CFFEX) done
2025-08-22 18:26:04,155 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='INE) done
2025-08-22 18:26:04,232 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='GFEX) done
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 365")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/project/future_1d/future_rank.py", line 8, in 
    client.save_future_rank(check=True, check_last=7)
  File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
    data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
  File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
    return sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
    return pandas_sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
    total_inserted = sql_engine.insert_records(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
    raise err
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
    return table.insert(chunksize=chunksize, method=method)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
    num_inserted = exec_insert(conn, keys, chunk_iter)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
    result = conn.execute(self.table.insert(), data)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 365")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '中泰期货(代客)', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 15983.0, 'long_chg': 2373.0, 'short_hld': 13995.0, 'short_chg': 419.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '中金岭南(代客)', 'vol': 22040.0, 'vol_chg': -1252.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '乾坤期货(代客)', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 35609.0, 'short_chg': 7694.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '五矿期货(代客)', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 22038.0, 'short_chg': -187.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '创元期货(代客)', 'vol': 24445.0, 'vol_chg': 7686.0, 'long_hld': 13897.0, 'long_chg': 7620.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '华泰期货(代客)', 'vol': 38715.0, 'vol_chg': -6505.0, 'long_hld': 33461.0, 'long_chg': 3439.0, 'short_hld': 38553.0, 'short_chg': 2294.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '华闻期货(代客)', 'vol': 47915.0, 'vol_chg': 19760.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}, {'date': '2025-08-14', 'symbol': '甲醇MA', 'broker': '南华期货(代客)', 'vol': 34853.0, 'vol_chg': 7912.0, 'long_hld': 16204.0, 'long_chg': -974.0, 'short_hld': 15174.0, 'short_chg': -2671.0, 'exchange': 'CZCE', 'variety': 'MA', 'comd': 'MA', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}  ... displaying 10 of 1000 total bound parameter sets ...  {'date': '2025-08-14', 'symbol': 'AU2510', 'broker': '方正中期', 'vol': 4726.0, 'vol_chg': -1610.0, 'long_hld': 2184.0, 'long_chg': 90.0, 'short_hld': 1483.0, 'short_chg': 12.0, 'exchange': 'SHFE', 'variety': 'AU', 'comd': 'au', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}, {'date': '2025-08-14', 'symbol': 'AU2510', 'broker': '格林大华', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 678.0, 'short_chg': 69.0, 'exchange': 'SHFE', 'variety': 'AU', 'comd': 'au', 'created_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 568749), 'updated_at': datetime.datetime(2025, 8, 22, 18, 26, 4, 569166)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-22 18:27:11 Fri	START TASK.01	future_1d  future_rank
=========================================================================
2025-08-22 18:27:13,223 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-22 18:27:13,308 - future_1d - INFO - future_rank date = 2025-08-14
2025-08-22 18:27:13,391 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CFFEX) done
2025-08-22 18:27:13,520 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='GFEX) done
2025-08-22 18:27:13,651 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='SHFE) done
2025-08-22 18:27:13,853 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CZCE) done
2025-08-22 18:27:13,924 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='INE) done
2025-08-22 18:27:14,006 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='DCE) done
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 1")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/project/future_1d/future_rank.py", line 8, in 
    client.save_future_rank(check=True, check_last=7)
  File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
    data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
  File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
    return sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
    return pandas_sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
    total_inserted = sql_engine.insert_records(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
    raise err
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
    return table.insert(chunksize=chunksize, method=method)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
    num_inserted = exec_insert(conn, keys, chunk_iter)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
    result = conn.execute(self.table.insert(), data)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 1")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-14', 'symbol': 'AD', 'broker': '期货公司会员/境外特殊经纪参与者', 'vol': 3448.0, 'vol_chg': -1248.0, 'long_hld': 9868.0, 'long_chg': -334.0, 'short_hld': 9868.0, 'short_chg': -334.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}, {'date': '2025-08-14', 'symbol': 'AD', 'broker': '非期货公司会员/境外特殊非经纪参与者', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东亚期货', 'vol': None, 'vol_chg': None, 'long_hld': 137.0, 'long_chg': -11.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东吴期货', 'vol': 66.0, 'vol_chg': -20.0, 'long_hld': None, 'long_chg': None, 'short_hld': 190.0, 'short_chg': -1.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东海期货', 'vol': 113.0, 'vol_chg': -38.0, 'long_hld': 224.0, 'long_chg': -1.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东证期货', 'vol': 138.0, 'vol_chg': 0.0, 'long_hld': 811.0, 'long_chg': -30.0, 'short_hld': 577.0, 'short_chg': -6.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信建投', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 265.0, 'short_chg': 13.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信期货', 'vol': 265.0, 'vol_chg': 0.0, 'long_hld': 794.0, 'long_chg': 33.0, 'short_hld': 672.0, 'short_chg': 16.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}  ... displaying 10 of 1000 total bound parameter sets ...  {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '山金期货', 'vol': None, 'vol_chg': None, 'long_hld': 35.0, 'long_chg': 0.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}, {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '广发期货', 'vol': 340.0, 'vol_chg': 0.0, 'long_hld': None, 'long_chg': None, 'short_hld': 320.0, 'short_chg': -55.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347206), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 14, 347668)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)
=========================================================================
2025-08-22 18:27:47 Fri	START TASK.01	future_1d  future_rank
=========================================================================
2025-08-22 18:27:49,812 - future_1d - INFO - future_rank check=True check_last=7 start...
2025-08-22 18:27:49,898 - future_1d - INFO - future_rank date = 2025-08-14
2025-08-22 18:27:49,985 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='GFEX) done
2025-08-22 18:27:50,073 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CFFEX) done
2025-08-22 18:27:50,142 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='DCE) done
2025-08-22 18:27:50,298 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='SHFE) done
2025-08-22 18:27:50,381 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='INE) done
2025-08-22 18:27:50,572 - future_1d - INFO - pro.fut_holding(trade_date='2025-08-14',exchange='CZCE) done
Traceback (most recent call last):
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
pymysql.err.DataError: (1406, "Data too long for column 'broker' at row 1")

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/root/project/future_1d/future_rank.py", line 8, in 
    client.save_future_rank(check=True, check_last=7)
  File "/root/project/future_1d/future1d_request.py", line 976, in save_future_rank
    data_add.to_sql(tablebase.__tablename__, self.engine, index=False, if_exists='append', chunksize=1000)
  File "/usr/local/lib/python3.10/site-packages/pandas/util/_decorators.py", line 333, in wrapper
    return func(*args, **kwargs)
  File "/usr/local/lib/python3.10/site-packages/pandas/core/generic.py", line 3106, in to_sql
    return sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 844, in to_sql
    return pandas_sql.to_sql(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 2030, in to_sql
    total_inserted = sql_engine.insert_records(
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1579, in insert_records
    raise err
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1570, in insert_records
    return table.insert(chunksize=chunksize, method=method)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1121, in insert
    num_inserted = exec_insert(conn, keys, chunk_iter)
  File "/usr/local/lib/python3.10/site-packages/pandas/io/sql.py", line 1012, in _execute_insert
    result = conn.execute(self.table.insert(), data)
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1419, in execute
    return meth(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/sql/elements.py", line 526, in _execute_on_connection
    return connection._execute_clauseelement(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1641, in _execute_clauseelement
    ret = self._execute_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1846, in _execute_context
    return self._exec_single_context(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1986, in _exec_single_context
    self._handle_dbapi_exception(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 2355, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/engine/base.py", line 1936, in _exec_single_context
    self.dialect.do_executemany(
  File "/usr/local/lib/python3.10/site-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 196, in do_executemany
    rowcount = cursor.executemany(statement, parameters)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 187, in executemany
    return self._do_execute_many(
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 225, in _do_execute_many
    rows += self.execute(sql + postfix)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 158, in execute
    result = self._query(query)
  File "/usr/local/lib/python3.10/site-packages/pymysql/cursors.py", line 325, in _query
    conn.query(q)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 549, in query
    self._affected_rows = self._read_query_result(unbuffered=unbuffered)
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 779, in _read_query_result
    result.read()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 1157, in read
    first_packet = self.connection._read_packet()
  File "/usr/local/lib/python3.10/site-packages/pymysql/connections.py", line 729, in _read_packet
    packet.raise_for_error()
  File "/usr/local/lib/python3.10/site-packages/pymysql/protocol.py", line 221, in raise_for_error
    err.raise_mysql_exception(self._data)
  File "/usr/local/lib/python3.10/site-packages/pymysql/err.py", line 143, in raise_mysql_exception
    raise errorclass(errno, errval)
sqlalchemy.exc.DataError: (pymysql.err.DataError) (1406, "Data too long for column 'broker' at row 1")
[SQL: INSERT INTO future_rank (date, symbol, broker, vol, vol_chg, long_hld, long_chg, short_hld, short_chg, exchange, variety, comd, created_at, updated_at) VALUES (%(date)s, %(symbol)s, %(broker)s, %(vol)s, %(vol_chg)s, %(long_hld)s, %(long_chg)s, %(short_hld)s, %(short_chg)s, %(exchange)s, %(variety)s, %(comd)s, %(created_at)s, %(updated_at)s)]
[parameters: [{'date': '2025-08-14', 'symbol': 'AD', 'broker': '期货公司会员/境外特殊经纪参与者', 'vol': 3448.0, 'vol_chg': -1248.0, 'long_hld': 9868.0, 'long_chg': -334.0, 'short_hld': 9868.0, 'short_chg': -334.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}, {'date': '2025-08-14', 'symbol': 'AD', 'broker': '非期货公司会员/境外特殊非经纪参与者', 'vol': 0.0, 'vol_chg': 0.0, 'long_hld': 0.0, 'long_chg': 0.0, 'short_hld': 0.0, 'short_chg': 0.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东亚期货', 'vol': None, 'vol_chg': None, 'long_hld': 137.0, 'long_chg': -11.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东吴期货', 'vol': 66.0, 'vol_chg': -20.0, 'long_hld': None, 'long_chg': None, 'short_hld': 190.0, 'short_chg': -1.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东海期货', 'vol': 113.0, 'vol_chg': -38.0, 'long_hld': 224.0, 'long_chg': -1.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '东证期货', 'vol': 138.0, 'vol_chg': 0.0, 'long_hld': 811.0, 'long_chg': -30.0, 'short_hld': 577.0, 'short_chg': -6.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信建投', 'vol': None, 'vol_chg': None, 'long_hld': None, 'long_chg': None, 'short_hld': 265.0, 'short_chg': 13.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}, {'date': '2025-08-14', 'symbol': 'AD2511', 'broker': '中信期货', 'vol': 265.0, 'vol_chg': 0.0, 'long_hld': 794.0, 'long_chg': 33.0, 'short_hld': 672.0, 'short_chg': 16.0, 'exchange': 'SHFE', 'variety': 'AD', 'comd': 'ad', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}  ... displaying 10 of 1000 total bound parameter sets ...  {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '山金期货', 'vol': None, 'vol_chg': None, 'long_hld': 35.0, 'long_chg': 0.0, 'short_hld': None, 'short_chg': None, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}, {'date': '2025-08-14', 'symbol': 'CU2508', 'broker': '广发期货', 'vol': 340.0, 'vol_chg': 0.0, 'long_hld': None, 'long_chg': None, 'short_hld': 320.0, 'short_chg': -55.0, 'exchange': 'SHFE', 'variety': 'CU', 'comd': 'cu', 'created_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 909951), 'updated_at': datetime.datetime(2025, 8, 22, 18, 27, 50, 910391)}]]
(Background on this error at: https://sqlalche.me/e/20/9h9h)