-
Notifications
You must be signed in to change notification settings - Fork 20
Description
Environment Setup
videx version: git 拉最新的
mysql version: percona 8.0.34-26
deployment: plugin
os:Debian 12
Observed vs Expected Behavior
https://github.com/bytedance/videx/blob/main/doc/installation_zh.md -按照这个文档里面的编译完整的 MySQL Server (包含 VIDEX 引擎) 。
编译阶段一切正常,初始化的时候报下面的错误,麻烦看下:
似乎跟histogram min,max value 排序相关
(videx_py39) root@xxxxx:~/videx_server# python src/sub_platforms/sql_opt/videx/scripts/videx_build_env.py --target 127.0.0.1:13308:tpch_tiny:videx:password --videx 127.0.0.1:13308:videx_tpch_tiny:videx:password
logging config: {'version': 1, 'formatters': {'default': {'format': '%(asctime)s [%(process)d:%(thread)d] %(levelname)-8s %(name)-15s [%(filename)s:%(lineno)d] %(_videx_trace_id)s %(message)s', 'datefmt': '%Y-%m-%d %H:%M:%S'}}, 'filters': {'videx_trace_filter': {'()': <class 'sub_platforms.sql_opt.videx.videx_logging.VidexTraceIdFilter'>}}, 'handlers': {'console': {'class': 'logging.StreamHandler', 'formatter': 'default', 'level': 'INFO', 'stream': 'ext://sys.stdout', 'filters': ['videx_trace_filter']}, 'info_log_file': {'class': 'logging.handlers.RotatingFileHandler', 'formatter': 'default', 'filename': './log/videx_app_info.log', 'maxBytes': 100000000, 'backupCount': 5, 'filters': ['videx_trace_filter']}, 'error_log_file': {'class': 'logging.handlers.RotatingFileHandler', 'formatter': 'default', 'filename': './log/videx_app_error.log', 'maxBytes': 100000000, 'backupCount': 5, 'filters': ['videx_trace_filter']}}, 'root': {'level': 'NOTSET', 'handlers': ['console', 'info_log_file'], 'propagate': False}, 'loggers': {'error_logger': {'level': 'ERROR', 'handlers': ['error_log_file'], 'propagate': True}}}
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_build_env.py:154] - metadata file is None
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:608] - fetch_all_meta_for_videx. target_db='tpch_tiny' result_dir='temp_meta_1763972875' n_buckets=16 hist_force=True hist_mem_size=200000000 all_table_names=None hist_algo=None
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:633] - fetch meta for videx: ndv_single_file = 'videx_tpch_tiny_ndv_single.json' not found in result_dir = 'temp_meta_1763972875', or exist ndv single is not enough.fetch it: sorted(ndv_single_dict.keys()) = [] miss_ndv_tables=['customer', 'lineitem', 'nation', 'orders', 'part', 'partsupp', 'region', 'supplier']
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for customer.tpch_tiny.customer.C_ACCTBAL [0/8]: SELECT COUNT(DISTINCT C_ACCTBAL) FROM tpch_tiny.customer;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for customer.tpch_tiny.customer.C_ADDRESS [1/8]: SELECT COUNT(DISTINCT C_ADDRESS) FROM tpch_tiny.customer;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for customer.tpch_tiny.customer.C_COMMENT [2/8]: SELECT COUNT(DISTINCT C_COMMENT) FROM tpch_tiny.customer;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for customer.tpch_tiny.customer.C_CUSTKEY [3/8]: SELECT COUNT(DISTINCT C_CUSTKEY) FROM tpch_tiny.customer;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for customer.tpch_tiny.customer.C_MKTSEGMENT [4/8]: SELECT COUNT(DISTINCT C_MKTSEGMENT) FROM tpch_tiny.customer;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for customer.tpch_tiny.customer.C_NAME [5/8]: SELECT COUNT(DISTINCT C_NAME) FROM tpch_tiny.customer;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for customer.tpch_tiny.customer.C_NATIONKEY [6/8]: SELECT COUNT(DISTINCT C_NATIONKEY) FROM tpch_tiny.customer;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for customer.tpch_tiny.customer.C_PHONE [7/8]: SELECT COUNT(DISTINCT C_PHONE) FROM tpch_tiny.customer;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_COMMENT [0/17]: SELECT COUNT(DISTINCT L_COMMENT) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_COMMITDATE [1/17]: SELECT COUNT(DISTINCT L_COMMITDATE) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_DISCOUNT [2/17]: SELECT COUNT(DISTINCT L_DISCOUNT) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_EXTENDEDPRICE [3/17]: SELECT COUNT(DISTINCT L_EXTENDEDPRICE) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_ID [4/17]: SELECT COUNT(DISTINCT L_ID) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_LINENUMBER [5/17]: SELECT COUNT(DISTINCT L_LINENUMBER) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_LINESTATUS [6/17]: SELECT COUNT(DISTINCT L_LINESTATUS) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_ORDERKEY [7/17]: SELECT COUNT(DISTINCT L_ORDERKEY) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_PARTKEY [8/17]: SELECT COUNT(DISTINCT L_PARTKEY) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_QUANTITY [9/17]: SELECT COUNT(DISTINCT L_QUANTITY) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_RECEIPTDATE [10/17]: SELECT COUNT(DISTINCT L_RECEIPTDATE) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_RETURNFLAG [11/17]: SELECT COUNT(DISTINCT L_RETURNFLAG) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_SHIPDATE [12/17]: SELECT COUNT(DISTINCT L_SHIPDATE) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_SHIPINSTRUCT [13/17]: SELECT COUNT(DISTINCT L_SHIPINSTRUCT) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_SHIPMODE [14/17]: SELECT COUNT(DISTINCT L_SHIPMODE) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_SUPPKEY [15/17]: SELECT COUNT(DISTINCT L_SUPPKEY) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for lineitem.tpch_tiny.lineitem.L_TAX [16/17]: SELECT COUNT(DISTINCT L_TAX) FROM tpch_tiny.lineitem;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for nation.tpch_tiny.nation.N_COMMENT [0/4]: SELECT COUNT(DISTINCT N_COMMENT) FROM tpch_tiny.nation;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for nation.tpch_tiny.nation.N_NAME [1/4]: SELECT COUNT(DISTINCT N_NAME) FROM tpch_tiny.nation;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for nation.tpch_tiny.nation.N_NATIONKEY [2/4]: SELECT COUNT(DISTINCT N_NATIONKEY) FROM tpch_tiny.nation;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for nation.tpch_tiny.nation.N_REGIONKEY [3/4]: SELECT COUNT(DISTINCT N_REGIONKEY) FROM tpch_tiny.nation;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for orders.tpch_tiny.orders.O_CLERK [0/9]: SELECT COUNT(DISTINCT O_CLERK) FROM tpch_tiny.orders;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for orders.tpch_tiny.orders.O_COMMENT [1/9]: SELECT COUNT(DISTINCT O_COMMENT) FROM tpch_tiny.orders;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for orders.tpch_tiny.orders.O_CUSTKEY [2/9]: SELECT COUNT(DISTINCT O_CUSTKEY) FROM tpch_tiny.orders;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for orders.tpch_tiny.orders.O_ORDERDATE [3/9]: SELECT COUNT(DISTINCT O_ORDERDATE) FROM tpch_tiny.orders;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for orders.tpch_tiny.orders.O_ORDERKEY [4/9]: SELECT COUNT(DISTINCT O_ORDERKEY) FROM tpch_tiny.orders;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for orders.tpch_tiny.orders.O_ORDERPRIORITY [5/9]: SELECT COUNT(DISTINCT O_ORDERPRIORITY) FROM tpch_tiny.orders;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for orders.tpch_tiny.orders.O_ORDERSTATUS [6/9]: SELECT COUNT(DISTINCT O_ORDERSTATUS) FROM tpch_tiny.orders;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for orders.tpch_tiny.orders.O_SHIPPRIORITY [7/9]: SELECT COUNT(DISTINCT O_SHIPPRIORITY) FROM tpch_tiny.orders;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for orders.tpch_tiny.orders.O_TOTALPRICE [8/9]: SELECT COUNT(DISTINCT O_TOTALPRICE) FROM tpch_tiny.orders;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for part.tpch_tiny.part.P_BRAND [0/9]: SELECT COUNT(DISTINCT P_BRAND) FROM tpch_tiny.part;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for part.tpch_tiny.part.P_COMMENT [1/9]: SELECT COUNT(DISTINCT P_COMMENT) FROM tpch_tiny.part;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for part.tpch_tiny.part.P_CONTAINER [2/9]: SELECT COUNT(DISTINCT P_CONTAINER) FROM tpch_tiny.part;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for part.tpch_tiny.part.P_MFGR [3/9]: SELECT COUNT(DISTINCT P_MFGR) FROM tpch_tiny.part;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for part.tpch_tiny.part.P_NAME [4/9]: SELECT COUNT(DISTINCT P_NAME) FROM tpch_tiny.part;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for part.tpch_tiny.part.P_PARTKEY [5/9]: SELECT COUNT(DISTINCT P_PARTKEY) FROM tpch_tiny.part;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for part.tpch_tiny.part.P_RETAILPRICE [6/9]: SELECT COUNT(DISTINCT P_RETAILPRICE) FROM tpch_tiny.part;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for part.tpch_tiny.part.P_SIZE [7/9]: SELECT COUNT(DISTINCT P_SIZE) FROM tpch_tiny.part;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for part.tpch_tiny.part.P_TYPE [8/9]: SELECT COUNT(DISTINCT P_TYPE) FROM tpch_tiny.part;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for partsupp.tpch_tiny.partsupp.PS_AVAILQTY [0/6]: SELECT COUNT(DISTINCT PS_AVAILQTY) FROM tpch_tiny.partsupp;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for partsupp.tpch_tiny.partsupp.PS_COMMENT [1/6]: SELECT COUNT(DISTINCT PS_COMMENT) FROM tpch_tiny.partsupp;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for partsupp.tpch_tiny.partsupp.PS_ID [2/6]: SELECT COUNT(DISTINCT PS_ID) FROM tpch_tiny.partsupp;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for partsupp.tpch_tiny.partsupp.PS_PARTKEY [3/6]: SELECT COUNT(DISTINCT PS_PARTKEY) FROM tpch_tiny.partsupp;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for partsupp.tpch_tiny.partsupp.PS_SUPPKEY [4/6]: SELECT COUNT(DISTINCT PS_SUPPKEY) FROM tpch_tiny.partsupp;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for partsupp.tpch_tiny.partsupp.PS_SUPPLYCOST [5/6]: SELECT COUNT(DISTINCT PS_SUPPLYCOST) FROM tpch_tiny.partsupp;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for region.tpch_tiny.region.R_COMMENT [0/3]: SELECT COUNT(DISTINCT R_COMMENT) FROM tpch_tiny.region;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for region.tpch_tiny.region.R_NAME [1/3]: SELECT COUNT(DISTINCT R_NAME) FROM tpch_tiny.region;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for region.tpch_tiny.region.R_REGIONKEY [2/3]: SELECT COUNT(DISTINCT R_REGIONKEY) FROM tpch_tiny.region;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for supplier.tpch_tiny.supplier.S_ACCTBAL [0/7]: SELECT COUNT(DISTINCT S_ACCTBAL) FROM tpch_tiny.supplier;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for supplier.tpch_tiny.supplier.S_ADDRESS [1/7]: SELECT COUNT(DISTINCT S_ADDRESS) FROM tpch_tiny.supplier;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for supplier.tpch_tiny.supplier.S_COMMENT [2/7]: SELECT COUNT(DISTINCT S_COMMENT) FROM tpch_tiny.supplier;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for supplier.tpch_tiny.supplier.S_NAME [3/7]: SELECT COUNT(DISTINCT S_NAME) FROM tpch_tiny.supplier;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for supplier.tpch_tiny.supplier.S_NATIONKEY [4/7]: SELECT COUNT(DISTINCT S_NATIONKEY) FROM tpch_tiny.supplier;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for supplier.tpch_tiny.supplier.S_PHONE [5/7]: SELECT COUNT(DISTINCT S_PHONE) FROM tpch_tiny.supplier;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:417] - fetch NDV for supplier.tpch_tiny.supplier.S_SUPPKEY [6/7]: SELECT COUNT(DISTINCT S_SUPPKEY) FROM tpch_tiny.supplier;
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_metadata.py:655] - fetch meta for videx: hist_file='videx_tpch_tiny_histogram.json' not found in result_dir='temp_meta_1763972875', or exist hist is not enough.fetch it. sorted(hist_dict.keys())=[] miss_hist_tables=['customer', 'lineitem', 'nation', 'orders', 'part', 'partsupp', 'region', 'supplier']
2025-11-24 16:27:55 [46227:139813563590464] WARNING root [db_variable.py:79] - version not updated, return empty str
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_histogram.py:1317] - Generating Histogram for tpch_tiny.customer.C_ACCTBAL with 16 n_buckets
2025-11-24 16:27:55 [46227:139813563590464] INFO root [videx_histogram.py:1317] - Generating Histogram for tpch_tiny.customer.C_ADDRESS with 16 n_buckets
Traceback (most recent call last):
File "/root/videx_server/src/sub_platforms/sql_opt/videx/scripts/videx_build_env.py", line 164, in
files = fetch_all_meta_with_one_file(meta_path=meta_path,
File "/root/videx_server/src/sub_platforms/sql_opt/videx/videx_metadata.py", line 762, in fetch_all_meta_with_one_file
stats_dict, hist_dict, ndv_single_dict, ndv_mulcol_dict = fetch_all_meta_for_videx(
File "/root/videx_server/src/sub_platforms/sql_opt/videx/videx_metadata.py", line 657, in fetch_all_meta_for_videx
tmp_hist_dict = generate_fetch_histogram(env, target_db, miss_hist_tables,
File "/root/videx_server/src/sub_platforms/sql_opt/videx/videx_histogram.py", line 1323, in generate_fetch_histogram
hist = fetch_col_histogram(env, target_db, table_name, col.name, n_buckets, force=force,
File "/root/videx_server/src/sub_platforms/sql_opt/videx/videx_histogram.py", line 1153, in fetch_col_histogram
return query_histogram(env, dbname, table_name, col_name)
File "/root/videx_server/src/sub_platforms/sql_opt/videx/videx_histogram.py", line 561, in query_histogram
return HistogramStats.init_from_mysql_json(data=hist_dict)
File "/root/videx_server/src/sub_platforms/sql_opt/videx/videx_histogram.py", line 458, in init_from_mysql_json
return HistogramStats(
File "/root/miniconda3/envs/videx_py39/lib/python3.9/site-packages/pydantic/main.py", line 214, in init
validated_self = self.pydantic_validator.validate_python(data, self_instance=self)
pydantic_core._pydantic_core.ValidationError: 1 validation error for HistogramStats
Value error, Buckets must have monotonically increasing, but got buckets=[HistogramBucket(min_value=' XO4xLzCAHLmvS4', max_value='2GTz XxGSbkAp8bKVjRajsxDXo', cum_freq=0.0627831715210356, row_count=97.0, size=0, bucket_freq=0.0627831715210356), HistogramBucket(min_value='2Ix5exZPldc bbvG49aMtmCkuAkTESsKz5nQaWHP', max_value='5xsAvgyKzy3o8o', cum_freq=0.1255663430420712, row_count=97.0, size=0, bucket_freq=0.0627831715210356), HistogramBucket(min_value='5y0xp60PiGcY3mpI7RDLVqwsRLxU5', max_value='A1IwcCJQfwD2yBvVjuQ,1 YF', cum_freq=0.1883495145631068, row_count=97.0, size=0, bucket_freq=0.0627831715210356), HistogramBucket(min_value='a2P82chwooKhZ1bZwx9Orvo0aHXxvFpn5', max_value='BsW4757envOGxVaTILzfsBreT8OaNlZvPMEUxP', cum_freq=0.2511326860841424, row_count=97.0, size=0, bucket_freq=0.0627831715210356), HistogramBucket(min_value='Bt95 UHUS35JSh', max_value='DzPwU5gS9q70sck6htdexoN0L1u1Ku4hJ', cum_freq=0.313915857605178, row_count=97.0, size=0, bucket_freq=0.06278317152103557), HistogramBucket(min_value='dZVg,73zJP9c5RG9', max_value='fva5m96f5BkLk,D, qzd', cum_freq=0.3766990291262136, row_count=97.0, size=0, bucket_freq=0.06278317152103563), HistogramBucket(min_value='FwSeoIwtjDPoRFevqHLmjJtvdFkAR16yh3Ao', max_value='I2n74 X4PDoyWZ3wh', cum_freq=0.4394822006472492, row_count=97.0, size=0, bucket_freq=0.06278317152103557), HistogramBucket(min_value='i2s86YanVhkSUqQvfHhHsIlUpB2cPwT5V5E96s', max_value='jwxN9nJBXN', cum_freq=0.5022653721682848, row_count=97.0, size=0, bucket_freq=0.06278317152103563), HistogramBucket(min_value='jXEiHRQm4nXzkaUfgCt53rmKzSRnEC', max_value='m,KoHb2zynI3euMkYGYRFXMy1', cum_freq=0.5650485436893203, row_count=97.0, size=0, bucket_freq=0.06278317152103552), HistogramBucket(min_value='m0B335hwM UXxg4byW3hqm9', max_value='NTq5fPFMnopHwPbcJCQag gi7qMtXbLPlJOMcdAe', cum_freq=0.627831715210356, row_count=97.0, size=0, bucket_freq=0.06278317152103563), HistogramBucket(min_value='NtYOVyClizxjYF L3d9dC6g', max_value='PuA,dO,VbQBg5Nd', cum_freq=0.6906148867313916, row_count=97.0, size=0, bucket_freq=0.06278317152103563), HistogramBucket(min_value='puSAnm cbptVohbwEsA3 mk6v91JaPV6GVF6Zxem', max_value='RWTu3tyCU NN5', cum_freq=0.7533980582524272, row_count=97.0, size=0, bucket_freq=0.06278317152103563), HistogramBucket(min_value='s1gd1XrAFZyz9dxgOe84DLLB', max_value='TZfJKs,5Cq42jmgo3,vf8LdCo5PncyBcF1vxbgLH', cum_freq=0.8161812297734627, row_count=97.0, size=0, bucket_freq=0.06278317152103552), HistogramBucket(min_value='u TLg5uInljo', max_value='VrJpGNJvMLfIQ3m7DTcaBkE', cum_freq=0.8789644012944984, row_count=97.0, size=0, bucket_freq=0.06278317152103563), HistogramBucket(min_value='VsiXQqGyhGlePEbq1thi2QqsALEr9auaIXNd', max_value='xzyrNijsfuqj8hEeyvrhHCfRaMBY,FNyeb3HWd', cum_freq=0.941747572815534, row_count=97.0, size=0, bucket_freq=0.06278317152103563), HistogramBucket(min_value='y,Fen5BgXdn4ZEbl5CFV ,AYbToj4sqgD,IVRG', max_value='zza5OQxXmhC5mMwI4qvZ2,6TEyQfNdIcMs6n7YW', cum_freq=1.0, row_count=90.0, size=0, bucket_freq=0.058252427184465994)] data_type='string' histogram_type='equi-height' null_values=0.0 collation_id=255 last_updated='2025-11-24 08:27:56.003349' sampling_rate=1.0 number_of_buckets_specified=16 database_type=None [type=value_error, input_value={'buckets': [HistogramBuc..., 'database_type': None}, input_type=dict]
For further information visit https://errors.pydantic.dev/2.10/v/value_error