Files
feiqiu-ETL/etl_billiards/reports/data_integrity_window_20260131_060115.json

2227 lines
73 KiB
JSON

{
"mode": "window",
"window": {
"start": "2025-07-01T00:00:00+08:00",
"end": "2026-01-29T23:00:00+08:00",
"segments": 1
},
"windows": [
{
"mode": "window",
"window": {
"start": "2025-07-01T00:00:00+08:00",
"end": "2026-01-29T23:00:00+08:00",
"label": "segment_1",
"granularity": "window"
},
"api_to_ods": {
"window_split_unit": "none",
"window_compensation_hours": 0,
"start": "2025-07-01T00:00:00+08:00",
"end": "2026-01-29T23:00:00+08:00",
"cutoff": null,
"window_days": 212,
"window_hours": 0,
"page_size": 200,
"chunk_size": 500,
"sample_limit": 50,
"compare_content": true,
"content_sample_limit": 50,
"store_id": 2790685415443269,
"base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
"results": [
{
"task_code": "ODS_ASSISTANT_ACCOUNT",
"table": "billiards_ods.assistant_accounts_master",
"endpoint": "/PersonnelManagement/SearchAssistantInfo",
"pk_columns": [
"id"
],
"records": 138,
"records_with_pk": 138,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 2,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_SETTLEMENT_RECORDS",
"table": "billiards_ods.settlement_records",
"endpoint": "/Site/GetAllOrderSettleList",
"pk_columns": [
"id"
],
"records": 21517,
"records_with_pk": 21517,
"missing": 0,
"missing_samples": [],
"mismatch": 1414,
"mismatch_samples": [
{
"id": 3049693993911621,
"content_hash": "9f772f6b67992140c11a3edfd4280daf41943b81deee248567e57eef496b677a"
},
{
"id": 3049687290709893,
"content_hash": "8184f3c5939bac17cc1ca3c7bab38e9d41845a02f7c35254751af88c1732f798"
},
{
"id": 3049677155829061,
"content_hash": "0f3f46d2fe7bc58599b820f185d9427ef3ac5bb33ee6d48069663891d2226bd1"
},
{
"id": 3049675185374533,
"content_hash": "008bb915b905c95a4450199feaacc7d42522e4d56eae17696e96d94d34a3ddc0"
},
{
"id": 3049667688630149,
"content_hash": "3ab493d8f6e5f303f271f6d861a13efa79769984e42fd68cd532c594b85c7920"
},
{
"id": 3049666963637573,
"content_hash": "252cd7ace58aa07331331b52832fe56a5f444ba664cad0950d6d8af6b10807ac"
},
{
"id": 3049659193771333,
"content_hash": "b8da694790a7d29a6a366cde1dc48cb5432debda36d978c7137a4138ac2eb67e"
},
{
"id": 3049652151338309,
"content_hash": "cd81f391cf96431eb7680e08c3ead92d4fe09f4dfef15c100704c5aa58836ede"
},
{
"id": 3049651460162885,
"content_hash": "ad9968864c822f87790c548162a318ed676b5768195d106911621d03f4dad87c"
},
{
"id": 3049650087413637,
"content_hash": "613c5a822e133cf0841b893ae00699cdaee11a05ec79dfddf7619198f82abe3f"
},
{
"id": 3049648237200709,
"content_hash": "d900582e6c326729dab1400a7fb6524f547291904e8d50926148f4a1f9e06481"
},
{
"id": 3049643525916357,
"content_hash": "3884a413e857cb9ef4acbf2aa1851ab510b0f25c7c4bc1148df45425b59f5d7e"
},
{
"id": 3049641004762821,
"content_hash": "ed493cbfd955d6c94af43baddd92dcc1b23c29f760a9ace8e84bcea69fa098c0"
},
{
"id": 3049630673766149,
"content_hash": "6dfb5ebb77b3ddc150e4dfc3ad5bdbabd66b48276fa11b049a87adbe93ddf16a"
},
{
"id": 3049624218273669,
"content_hash": "3dea2089a02bd2452e1ffd962be3140db095412365e9d828b80abe3a7d77f101"
},
{
"id": 3049616331622277,
"content_hash": "6b3fc091c526c98098b01dba9da6988fff2fc971382f21b5a0b20878301851f3"
},
{
"id": 3049611097736901,
"content_hash": "95710f0b572ed137621eb1aca919bb975c4ae3c34a74e53b6c08fdf6c6d237e4"
},
{
"id": 3049610645292741,
"content_hash": "b40ecd1415b8f8bf47ff14f5125219d674cc18c90287590e2ff11bcdf4cca481"
},
{
"id": 3049609302263685,
"content_hash": "c5ad8c316857bbea598641392514dedf8a77d7f0d03d342fb404726803dfae33"
},
{
"id": 3049604443588485,
"content_hash": "f70cec0f75df0e066bced00870ee0b0bc4a9f38c2e323b2cb097cfcf99c3ab8e"
},
{
"id": 3049585745823493,
"content_hash": "b076d76ec229408c8ed5b80b166f9f367706c19465d7122178d70773cb2856bb"
},
{
"id": 3049577520187141,
"content_hash": "151a87959c8d7f491936405de9ec17901b10537cafd45d1aeeeab274805ede88"
},
{
"id": 3049572749264773,
"content_hash": "bc27c5a83bfc85b5600d938a94b6c4ca365cba5f6a721c5a0f718a1094d782cb"
},
{
"id": 3049570033305349,
"content_hash": "ff62cd72a46cfa2d63a604623246de7086dc4e52df3bf8eb959dfa17bccc58a6"
},
{
"id": 3049564231485189,
"content_hash": "5b7a6bac1199df4d095e107e93042ae741192efa826c8dee6370e2e41bd05a02"
},
{
"id": 3049556197147973,
"content_hash": "f46ccebbf9343ca244caef29557e2e94d624422fab224e8a1e527b75f49b3b40"
},
{
"id": 3049555436045637,
"content_hash": "e4b208436d0450fef16f7f348702602ce94a4d537399852e28d6e8e0b1a77356"
},
{
"id": 3049525102298437,
"content_hash": "e029fd231746cbc833e3e1802e9776a89e47022c685f4744d001ddee94c2fc56"
},
{
"id": 3049505399539461,
"content_hash": "f24d1429bf16c65bcf54a89841e60de5d76e85cc297960da2e40e0f89091b485"
},
{
"id": 3049489313564421,
"content_hash": "bf028f166f7016c79716874bf63d8e803c3657bb8bfe482a2c38247635d8c537"
},
{
"id": 3049480004437765,
"content_hash": "99dc95af93980d6cc2cbda0da7aaead3659ac40cc1581c3f8eee87fcc5418669"
},
{
"id": 3049444425041669,
"content_hash": "af1df14fb6715e8cd22b427d1229051616be3ef457cdda242b78c5050933faf1"
},
{
"id": 3049435269187333,
"content_hash": "10bdf29c85c7cb4ef888f86a71949e29c3ce713a68075be26f9442d85ff5f9eb"
},
{
"id": 3049409664124229,
"content_hash": "ed5116f2ad3b2777a9d512762f8e35ac6ba66070fe05de831e80702868d0a921"
},
{
"id": 3049376012338885,
"content_hash": "60e5336194019bd96bbb6ab52089955ac5bd21addf8bc85b00b6f3da0994d0ef"
},
{
"id": 3049350366070085,
"content_hash": "a2fed47f7f10ff89090da0ee99ffb54171a6cc0c85f59dc193cf8c7d69048e0f"
},
{
"id": 3049316448290117,
"content_hash": "662679c4bce27211bd86afe1bb77288b57cfc0270d23dbce907d2ae61254fdce"
},
{
"id": 3049314064533253,
"content_hash": "0828ce614791e159be4a156d8e8c3b218c7dbdf1f3b0c021bf02c9ba4ce6a058"
},
{
"id": 3049310935221957,
"content_hash": "b737bf9195579231d9ded3391f87541c09c18d0244b61a3a93ca6062f89b1813"
},
{
"id": 3048861492757829,
"content_hash": "63352d296478a6bbe733a9d964c4387dcd8d70cfc6215fc7a154a8e4321441ab"
},
{
"id": 3048840159921477,
"content_hash": "1f5cd39953ed5660d8481e112e8eedc6d498d793738bda206dd9819af4b3acd7"
},
{
"id": 3048839651444613,
"content_hash": "c907465b29f37a9f77c3855bf5294eae62488d3b5981b6f7b7df73f4554083c1"
},
{
"id": 3048760090445701,
"content_hash": "cf6a6b582d379eaf2f995734bbe2dc98761c3141240645ae60266787ade7114b"
},
{
"id": 3048755614156485,
"content_hash": "d3534c26f95d6aca9b445b47ea8c62cadd8b756ce4a471ac462d5471fefd5ae4"
},
{
"id": 3048747724457285,
"content_hash": "374b83cee63f0ff4eecec744e1a3403b1c5026d0cc195c98a7573945e873841f"
},
{
"id": 3048744895448965,
"content_hash": "497c9cee85f5a8e5692baa06fbf9988d6e425768c65ddf0265d889e9beaaa6e4"
},
{
"id": 3048738683684613,
"content_hash": "b13776a1fa555a23477aa4cbb35e196c6cc93b5b6d3aa1ff5d2b7ef429cf93a7"
},
{
"id": 3048699584055045,
"content_hash": "d045c0d63bfc2386b4e8bc1589d57fb93ee31f1d9abaaa71a074ea228a362941"
},
{
"id": 3048697132844805,
"content_hash": "03fa89e4812877afea0015d0b09fe5caae8025d40ff1a78cbca38a5b74483b86"
},
{
"id": 3048672071059205,
"content_hash": "6cff23966cc3356a2f486777f8d1b29d280c4ce98312c78314a798ad2e38b2e9"
}
],
"pages": 109,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_TABLE_USE",
"table": "billiards_ods.table_fee_transactions",
"endpoint": "/Site/GetSiteTableOrderDetails",
"pk_columns": [
"id"
],
"records": 10104,
"records_with_pk": 10104,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 51,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_ASSISTANT_LEDGER",
"table": "billiards_ods.assistant_service_records",
"endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
"pk_columns": [
"id"
],
"records": 4529,
"records_with_pk": 4529,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 25,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_ASSISTANT_ABOLISH",
"table": "billiards_ods.assistant_cancellation_records",
"endpoint": "/AssistantPerformance/GetAbolitionAssistant",
"pk_columns": [
"id"
],
"records": 84,
"records_with_pk": 84,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 2,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_STORE_GOODS_SALES",
"table": "billiards_ods.store_goods_sales_records",
"endpoint": "/TenantGoods/GetGoodsSalesList",
"pk_columns": [
"id"
],
"records": 0,
"records_with_pk": 0,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_PAYMENT",
"table": "billiards_ods.payment_transactions",
"endpoint": "/PayLog/GetPayLogListPage",
"pk_columns": [
"id"
],
"records": 11908,
"records_with_pk": 11908,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 60,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_REFUND",
"table": "billiards_ods.refund_transactions",
"endpoint": "/Order/GetRefundPayLogList",
"pk_columns": [
"id"
],
"records": 39,
"records_with_pk": 39,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_PLATFORM_COUPON",
"table": "billiards_ods.platform_coupon_redemption_records",
"endpoint": "/Promotion/GetOfflineCouponConsumePageList",
"pk_columns": [
"id"
],
"records": 17277,
"records_with_pk": 17277,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 87,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_MEMBER",
"table": "billiards_ods.member_profiles",
"endpoint": "/MemberProfile/GetTenantMemberList",
"pk_columns": [
"id"
],
"records": 556,
"records_with_pk": 556,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 3,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_MEMBER_CARD",
"table": "billiards_ods.member_stored_value_cards",
"endpoint": "/MemberProfile/GetTenantMemberCardList",
"pk_columns": [
"id"
],
"records": 945,
"records_with_pk": 945,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 5,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_MEMBER_BALANCE",
"table": "billiards_ods.member_balance_changes",
"endpoint": "/MemberProfile/GetMemberCardBalanceChange",
"pk_columns": [
"id"
],
"records": 2501,
"records_with_pk": 2501,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 13,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_RECHARGE_SETTLE",
"table": "billiards_ods.recharge_settlements",
"endpoint": "/Site/GetRechargeSettleList",
"pk_columns": [
"id"
],
"records": 414,
"records_with_pk": 414,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 4,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_GROUP_PACKAGE",
"table": "billiards_ods.group_buy_packages",
"endpoint": "/PackageCoupon/QueryPackageCouponList",
"pk_columns": [
"id"
],
"records": 18,
"records_with_pk": 18,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_GROUP_BUY_REDEMPTION",
"table": "billiards_ods.group_buy_redemption_records",
"endpoint": "/Site/GetSiteTableUseDetails",
"pk_columns": [
"id"
],
"records": 8230,
"records_with_pk": 8230,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 42,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_INVENTORY_STOCK",
"table": "billiards_ods.goods_stock_summary",
"endpoint": "/TenantGoods/GetGoodsStockReport",
"pk_columns": [
"sitegoodsid"
],
"records": 172,
"records_with_pk": 172,
"missing": 0,
"missing_samples": [],
"mismatch": 1,
"mismatch_samples": [
{
"sitegoodsid": 2794695801917573,
"content_hash": "3a668d320cf4ff80b913277ddcd574cbd97cd6cbf59bfa3435253c92a6b52508"
}
],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_INVENTORY_CHANGE",
"table": "billiards_ods.goods_stock_movements",
"endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
"pk_columns": [
"sitegoodsstockid"
],
"records": 28811,
"records_with_pk": 28811,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 145,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_TABLES",
"table": "billiards_ods.site_tables_master",
"endpoint": "/Table/GetSiteTables",
"pk_columns": [
"id"
],
"records": 74,
"records_with_pk": 74,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_GOODS_CATEGORY",
"table": "billiards_ods.stock_goods_category_tree",
"endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
"pk_columns": [
"id"
],
"records": 9,
"records_with_pk": 9,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_STORE_GOODS",
"table": "billiards_ods.store_goods_master",
"endpoint": "/TenantGoods/GetGoodsInventoryList",
"pk_columns": [
"id"
],
"records": 172,
"records_with_pk": 172,
"missing": 0,
"missing_samples": [],
"mismatch": 1,
"mismatch_samples": [
{
"id": 2794695801917573,
"content_hash": "e274058282aaec4d786710db076b6225620fc74de08763643510828c34a485a2"
}
],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_TABLE_FEE_DISCOUNT",
"table": "billiards_ods.table_fee_discount_records",
"endpoint": "/Site/GetTaiFeeAdjustList",
"pk_columns": [
"id"
],
"records": 1782,
"records_with_pk": 1782,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 9,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_TENANT_GOODS",
"table": "billiards_ods.tenant_goods_master",
"endpoint": "/TenantGoods/QueryTenantGoods",
"pk_columns": [
"id"
],
"records": 173,
"records_with_pk": 173,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_SETTLEMENT_TICKET",
"table": "billiards_ods.settlement_ticket_details",
"endpoint": "/Order/GetOrderSettleTicketNew",
"pk_columns": [
"ordersettleid"
],
"records": 22176,
"records_with_pk": 0,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 113,
"skipped_missing_pk": 22176,
"errors": 0,
"error_detail": null,
"source_endpoint": "/PayLog/GetPayLogListPage"
}
],
"total_missing": 0,
"total_mismatch": 1416,
"total_errors": 0,
"generated_at": "2026-01-31T05:40:58.602950+08:00"
},
"ods_to_dwd": {
"tables": [
{
"dwd_table": "billiards_dwd.dwd_settlement_head",
"ods_table": "billiards_ods.settlement_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 23366,
"ods": 23712,
"diff": -346
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_settlement_head_ex",
"ods_table": "billiards_ods.settlement_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 23366,
"ods": 23712,
"diff": -346
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_table_fee_log",
"ods_table": "billiards_ods.table_fee_transactions",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
"ods_table": "billiards_ods.table_fee_transactions",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_table_fee_adjust",
"ods_table": "billiards_ods.table_fee_discount_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 2849,
"ods": 2943,
"diff": -94
},
"amounts": [
{
"column": "ledger_amount",
"dwd_sum": 329604.44,
"ods_sum": 348842.08,
"diff": -19237.640000000014
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
"ods_table": "billiards_ods.table_fee_discount_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_store_goods_sale",
"ods_table": "billiards_ods.store_goods_sales_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
"ods_table": "billiards_ods.store_goods_sales_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 17563,
"ods": 17563,
"diff": 0
},
"amounts": [
{
"column": "coupon_deduct_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "discount_money",
"dwd_sum": 21673.2,
"ods_sum": 21673.2,
"diff": 0.0
},
{
"column": "member_discount_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "option_coupon_deduct_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "option_member_discount_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "point_discount_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "point_discount_money_cost",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "push_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_assistant_service_log",
"ods_table": "billiards_ods.assistant_service_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
"ods_table": "billiards_ods.assistant_service_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_assistant_trash_event",
"ods_table": "billiards_ods.assistant_cancellation_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 98,
"ods": 100,
"diff": -2
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
"ods_table": "billiards_ods.assistant_cancellation_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 98,
"ods": 100,
"diff": -2
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_member_balance_change",
"ods_table": "billiards_ods.member_balance_changes",
"windowed": false,
"window_col": null,
"count": {
"dwd": 4745,
"ods": 4858,
"diff": -113
},
"amounts": [],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
"ods_table": "billiards_ods.member_balance_changes",
"windowed": false,
"window_col": null,
"count": {
"dwd": 4745,
"ods": 4858,
"diff": -113
},
"amounts": [
{
"column": "refund_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
"ods_table": "billiards_ods.group_buy_redemption_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
"ods_table": "billiards_ods.group_buy_redemption_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 11427,
"ods": 11735,
"diff": -308
},
"amounts": [
{
"column": "assistant_promotion_money",
"dwd_sum": 7544.8,
"ods_sum": 7544.8,
"diff": 0.0
},
{
"column": "assistant_service_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "goods_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "recharge_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "reward_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "table_service_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
"ods_table": "billiards_ods.platform_coupon_redemption_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
"ods_table": "billiards_ods.platform_coupon_redemption_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 16977,
"ods": 17277,
"diff": -300
},
"amounts": [],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_recharge_order",
"ods_table": "billiards_ods.recharge_settlements",
"windowed": false,
"window_col": null,
"count": {
"dwd": 455,
"ods": 462,
"diff": -7
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_recharge_order_ex",
"ods_table": "billiards_ods.recharge_settlements",
"windowed": false,
"window_col": null,
"count": {
"dwd": 455,
"ods": 462,
"diff": -7
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_payment",
"ods_table": "billiards_ods.payment_transactions",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_refund",
"ods_table": "billiards_ods.refund_transactions",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_refund_ex",
"ods_table": "billiards_ods.refund_transactions",
"windowed": false,
"window_col": null,
"count": {
"dwd": 45,
"ods": 46,
"diff": -1
},
"amounts": [
{
"column": "balance_frozen_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "card_frozen_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "refund_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "round_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
}
],
"total_count_diff": -1639,
"total_mismatch": 118581
},
"generated_at": "2026-01-31T05:41:18.992643+08:00"
}
],
"api_to_ods": {
"total_missing": 0,
"total_mismatch": 1416,
"total_errors": 0
},
"total_missing": 0,
"total_mismatch": 1416,
"total_errors": 0,
"generated_at": "2026-01-31T05:41:18.992668+08:00",
"backfill_result": {
"total_missing": 190,
"total_mismatch": 1416,
"backfilled": 1416,
"errors": 0,
"details": [
{
"task_code": "ODS_SETTLEMENT_RECORDS",
"missing": 10,
"mismatch": 1414,
"backfilled": 1414,
"error": null
},
{
"task_code": "ODS_ASSISTANT_LEDGER",
"missing": 1,
"mismatch": 0,
"backfilled": 0,
"error": null
},
{
"task_code": "ODS_INVENTORY_STOCK",
"missing": 0,
"mismatch": 1,
"backfilled": 1,
"error": null
},
{
"task_code": "ODS_INVENTORY_CHANGE",
"missing": 179,
"mismatch": 0,
"backfilled": 0,
"error": null
},
{
"task_code": "ODS_STORE_GOODS",
"missing": 0,
"mismatch": 1,
"backfilled": 1,
"error": null
}
]
},
"post_check": {
"mode": "window",
"window": {
"start": "2025-07-01T00:00:00+08:00",
"end": "2026-01-29T23:00:00+08:00",
"segments": 1
},
"windows": [
{
"mode": "window",
"window": {
"start": "2025-07-01T00:00:00+08:00",
"end": "2026-01-29T23:00:00+08:00",
"label": "segment_1",
"granularity": "window"
},
"api_to_ods": {
"window_split_unit": "none",
"window_compensation_hours": 0,
"start": "2025-07-01T00:00:00+08:00",
"end": "2026-01-29T23:00:00+08:00",
"cutoff": null,
"window_days": 212,
"window_hours": 0,
"page_size": 200,
"chunk_size": 500,
"sample_limit": 50,
"compare_content": true,
"content_sample_limit": 50,
"store_id": 2790685415443269,
"base_url": "https://pc.ficoo.vip/apiprod/admin/v1/",
"results": [
{
"task_code": "ODS_ASSISTANT_ACCOUNT",
"table": "billiards_ods.assistant_accounts_master",
"endpoint": "/PersonnelManagement/SearchAssistantInfo",
"pk_columns": [
"id"
],
"records": 138,
"records_with_pk": 138,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 2,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_SETTLEMENT_RECORDS",
"table": "billiards_ods.settlement_records",
"endpoint": "/Site/GetAllOrderSettleList",
"pk_columns": [
"id"
],
"records": 21517,
"records_with_pk": 21517,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 109,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_TABLE_USE",
"table": "billiards_ods.table_fee_transactions",
"endpoint": "/Site/GetSiteTableOrderDetails",
"pk_columns": [
"id"
],
"records": 10104,
"records_with_pk": 10104,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 51,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_ASSISTANT_LEDGER",
"table": "billiards_ods.assistant_service_records",
"endpoint": "/AssistantPerformance/GetOrderAssistantDetails",
"pk_columns": [
"id"
],
"records": 4529,
"records_with_pk": 4529,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 25,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_ASSISTANT_ABOLISH",
"table": "billiards_ods.assistant_cancellation_records",
"endpoint": "/AssistantPerformance/GetAbolitionAssistant",
"pk_columns": [
"id"
],
"records": 84,
"records_with_pk": 84,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 2,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_STORE_GOODS_SALES",
"table": "billiards_ods.store_goods_sales_records",
"endpoint": "/TenantGoods/GetGoodsSalesList",
"pk_columns": [
"id"
],
"records": 0,
"records_with_pk": 0,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_PAYMENT",
"table": "billiards_ods.payment_transactions",
"endpoint": "/PayLog/GetPayLogListPage",
"pk_columns": [
"id"
],
"records": 11908,
"records_with_pk": 11908,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 60,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_REFUND",
"table": "billiards_ods.refund_transactions",
"endpoint": "/Order/GetRefundPayLogList",
"pk_columns": [
"id"
],
"records": 39,
"records_with_pk": 39,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_PLATFORM_COUPON",
"table": "billiards_ods.platform_coupon_redemption_records",
"endpoint": "/Promotion/GetOfflineCouponConsumePageList",
"pk_columns": [
"id"
],
"records": 17277,
"records_with_pk": 17277,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 87,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_MEMBER",
"table": "billiards_ods.member_profiles",
"endpoint": "/MemberProfile/GetTenantMemberList",
"pk_columns": [
"id"
],
"records": 556,
"records_with_pk": 556,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 3,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_MEMBER_CARD",
"table": "billiards_ods.member_stored_value_cards",
"endpoint": "/MemberProfile/GetTenantMemberCardList",
"pk_columns": [
"id"
],
"records": 945,
"records_with_pk": 945,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 5,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_MEMBER_BALANCE",
"table": "billiards_ods.member_balance_changes",
"endpoint": "/MemberProfile/GetMemberCardBalanceChange",
"pk_columns": [
"id"
],
"records": 2501,
"records_with_pk": 2501,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 13,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_RECHARGE_SETTLE",
"table": "billiards_ods.recharge_settlements",
"endpoint": "/Site/GetRechargeSettleList",
"pk_columns": [
"id"
],
"records": 414,
"records_with_pk": 414,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 4,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_GROUP_PACKAGE",
"table": "billiards_ods.group_buy_packages",
"endpoint": "/PackageCoupon/QueryPackageCouponList",
"pk_columns": [
"id"
],
"records": 18,
"records_with_pk": 18,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_GROUP_BUY_REDEMPTION",
"table": "billiards_ods.group_buy_redemption_records",
"endpoint": "/Site/GetSiteTableUseDetails",
"pk_columns": [
"id"
],
"records": 8230,
"records_with_pk": 8230,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 42,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_INVENTORY_STOCK",
"table": "billiards_ods.goods_stock_summary",
"endpoint": "/TenantGoods/GetGoodsStockReport",
"pk_columns": [
"sitegoodsid"
],
"records": 172,
"records_with_pk": 172,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_INVENTORY_CHANGE",
"table": "billiards_ods.goods_stock_movements",
"endpoint": "/GoodsStockManage/QueryGoodsOutboundReceipt",
"pk_columns": [
"sitegoodsstockid"
],
"records": 28811,
"records_with_pk": 28811,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 145,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_TABLES",
"table": "billiards_ods.site_tables_master",
"endpoint": "/Table/GetSiteTables",
"pk_columns": [
"id"
],
"records": 74,
"records_with_pk": 74,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_GOODS_CATEGORY",
"table": "billiards_ods.stock_goods_category_tree",
"endpoint": "/TenantGoodsCategory/QueryPrimarySecondaryCategory",
"pk_columns": [
"id"
],
"records": 9,
"records_with_pk": 9,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_STORE_GOODS",
"table": "billiards_ods.store_goods_master",
"endpoint": "/TenantGoods/GetGoodsInventoryList",
"pk_columns": [
"id"
],
"records": 172,
"records_with_pk": 172,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_TABLE_FEE_DISCOUNT",
"table": "billiards_ods.table_fee_discount_records",
"endpoint": "/Site/GetTaiFeeAdjustList",
"pk_columns": [
"id"
],
"records": 1782,
"records_with_pk": 1782,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 9,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_TENANT_GOODS",
"table": "billiards_ods.tenant_goods_master",
"endpoint": "/TenantGoods/QueryTenantGoods",
"pk_columns": [
"id"
],
"records": 173,
"records_with_pk": 173,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 1,
"skipped_missing_pk": 0,
"errors": 0,
"error_detail": null,
"compare_content": true,
"content_hash_supported": true
},
{
"task_code": "ODS_SETTLEMENT_TICKET",
"table": "billiards_ods.settlement_ticket_details",
"endpoint": "/Order/GetOrderSettleTicketNew",
"pk_columns": [
"ordersettleid"
],
"records": 22176,
"records_with_pk": 0,
"missing": 0,
"missing_samples": [],
"mismatch": 0,
"mismatch_samples": [],
"pages": 113,
"skipped_missing_pk": 22176,
"errors": 0,
"error_detail": null,
"source_endpoint": "/PayLog/GetPayLogListPage"
}
],
"total_missing": 0,
"total_mismatch": 0,
"total_errors": 0,
"generated_at": "2026-01-31T06:00:58.194488+08:00"
},
"ods_to_dwd": {
"tables": [
{
"dwd_table": "billiards_dwd.dwd_settlement_head",
"ods_table": "billiards_ods.settlement_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 23366,
"ods": 23712,
"diff": -346
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_settlement_head_ex",
"ods_table": "billiards_ods.settlement_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 23366,
"ods": 23712,
"diff": -346
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_table_fee_log",
"ods_table": "billiards_ods.table_fee_transactions",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_table_fee_log_ex",
"ods_table": "billiards_ods.table_fee_transactions",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_table_fee_adjust",
"ods_table": "billiards_ods.table_fee_discount_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 2849,
"ods": 2943,
"diff": -94
},
"amounts": [
{
"column": "ledger_amount",
"dwd_sum": 329604.44,
"ods_sum": 348842.08,
"diff": -19237.640000000014
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_table_fee_adjust_ex",
"ods_table": "billiards_ods.table_fee_discount_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_store_goods_sale",
"ods_table": "billiards_ods.store_goods_sales_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_store_goods_sale_ex",
"ods_table": "billiards_ods.store_goods_sales_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 17563,
"ods": 17563,
"diff": 0
},
"amounts": [
{
"column": "coupon_deduct_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "discount_money",
"dwd_sum": 21673.2,
"ods_sum": 21673.2,
"diff": 0.0
},
{
"column": "member_discount_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "option_coupon_deduct_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "option_member_discount_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "point_discount_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "point_discount_money_cost",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "push_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_assistant_service_log",
"ods_table": "billiards_ods.assistant_service_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_assistant_service_log_ex",
"ods_table": "billiards_ods.assistant_service_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_assistant_trash_event",
"ods_table": "billiards_ods.assistant_cancellation_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 98,
"ods": 100,
"diff": -2
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_assistant_trash_event_ex",
"ods_table": "billiards_ods.assistant_cancellation_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 98,
"ods": 100,
"diff": -2
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_member_balance_change",
"ods_table": "billiards_ods.member_balance_changes",
"windowed": false,
"window_col": null,
"count": {
"dwd": 4745,
"ods": 4858,
"diff": -113
},
"amounts": [],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_member_balance_change_ex",
"ods_table": "billiards_ods.member_balance_changes",
"windowed": false,
"window_col": null,
"count": {
"dwd": 4745,
"ods": 4858,
"diff": -113
},
"amounts": [
{
"column": "refund_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_groupbuy_redemption",
"ods_table": "billiards_ods.group_buy_redemption_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_groupbuy_redemption_ex",
"ods_table": "billiards_ods.group_buy_redemption_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 11427,
"ods": 11735,
"diff": -308
},
"amounts": [
{
"column": "assistant_promotion_money",
"dwd_sum": 7544.8,
"ods_sum": 7544.8,
"diff": 0.0
},
{
"column": "assistant_service_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "goods_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "recharge_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "reward_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "table_service_promotion_money",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_platform_coupon_redemption",
"ods_table": "billiards_ods.platform_coupon_redemption_records",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_platform_coupon_redemption_ex",
"ods_table": "billiards_ods.platform_coupon_redemption_records",
"windowed": false,
"window_col": null,
"count": {
"dwd": 16977,
"ods": 17277,
"diff": -300
},
"amounts": [],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
},
{
"dwd_table": "billiards_dwd.dwd_recharge_order",
"ods_table": "billiards_ods.recharge_settlements",
"windowed": false,
"window_col": null,
"count": {
"dwd": 455,
"ods": 462,
"diff": -7
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_recharge_order_ex",
"ods_table": "billiards_ods.recharge_settlements",
"windowed": false,
"window_col": null,
"count": {
"dwd": 455,
"ods": 462,
"diff": -7
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"mismatch_error": "join_keys_or_compare_cols_unavailable"
},
{
"dwd_table": "billiards_dwd.dwd_payment",
"ods_table": "billiards_ods.payment_transactions",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_refund",
"ods_table": "billiards_ods.refund_transactions",
"windowed": true,
"window_col": null,
"count": {
"dwd": null,
"ods": null,
"diff": null
},
"amounts": [],
"mismatch": null,
"mismatch_samples": [],
"error": "AttributeError: 'tuple' object has no attribute 'items'"
},
{
"dwd_table": "billiards_dwd.dwd_refund_ex",
"ods_table": "billiards_ods.refund_transactions",
"windowed": false,
"window_col": null,
"count": {
"dwd": 45,
"ods": 46,
"diff": -1
},
"amounts": [
{
"column": "balance_frozen_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "card_frozen_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "refund_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
},
{
"column": "round_amount",
"dwd_sum": 0.0,
"ods_sum": 0.0,
"diff": 0.0
}
],
"mismatch": 0,
"mismatch_samples": [],
"mismatch_error": null
}
],
"total_count_diff": -1639,
"total_mismatch": 118581
},
"generated_at": "2026-01-31T06:01:15.314372+08:00"
}
],
"api_to_ods": {
"total_missing": 0,
"total_mismatch": 0,
"total_errors": 0
},
"total_missing": 0,
"total_mismatch": 0,
"total_errors": 0,
"generated_at": "2026-01-31T06:01:15.314392+08:00"
}
}