{
  "source_file": "0930",
  "source_platform": "Substack",
  "author": "Data Engineering Weekly",
  "title_listed": "Modern Data Stack: Tools and Best Practices",
  "keywords": "现代数据栈,工具,实践",
  "domain": "数据处理",
  "content_type": "深度技术解析",
  "is_paid_flag": "否",
  "url": "https://www.dataengineeringweekly.com/p/modern-data-stack-tools",
  "publish_date": "2024-06",
  "corpus_stage": "数据处理",
  "notes": "现代数据栈工具与最佳实践",
  "id": "0781728a6270",
  "collected_at": "2026-10-01T20:48:38",
  "title": "Data Engineering Weekly | Ananth Packkildurai | Substack",
  "body_markdown": "[![Data Engineering Weekly](https://substackcdn.com/image/fetch/$s_!AdQk!,w_40,h_40,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)](https://www.dataengineeringweekly.com/)\n# [Data Engineering Weekly](https://www.dataengineeringweekly.com/)\nSubscribeSign in\n[Home](https://www.dataengineeringweekly.com/)\n[Notes](https://www.dataengineeringweekly.com/notes)\n[Chat](https://www.dataengineeringweekly.com/chat)\n[Podcast](https://podcasts.apple.com/us/podcast/data-engineering-weekly/id1610960581)\n[leetdata.ai](https://leetdata.ai/)\n[Archive](https://www.dataengineeringweekly.com/archive)\n[About](https://www.dataengineeringweekly.com/about)\n## Page not found\nLatestTopDiscussions\n[Thinking Like a Data Architect](https://www.dataengineeringweekly.com/p/thinking-like-a-data-architect)\n[A field guide for data leaders](https://www.dataengineeringweekly.com/p/thinking-like-a-data-architect)\nSep 30 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n39\n2\n1\n![](../images/013.png)\n[Data Engineering Weekly #289](https://www.dataengineeringweekly.com/p/data-engineering-weekly-289)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-289)\nSep 28 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n23\n2\n1\n![](../images/031.png)\n[Data Engineering Weekly #288](https://www.dataengineeringweekly.com/p/data-engineering-weekly-288)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-288)\nSep 21 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n30\n1\n2\n![](../images/031.png)\n[Data Engineering Weekly #287](https://www.dataengineeringweekly.com/p/data-engineering-weekly-287)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-287)\nSep 14 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n29\n2\n![](../images/031.png)\n[Data Engineering Weekly #286](https://www.dataengineeringweekly.com/p/data-engineering-weekly-286)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-286)\nSep 7 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n24\n1\n![](../images/031.png)\n### August 2026\n[Data Engineering Weekly #285](https://www.dataengineeringweekly.com/p/data-engineering-weekly-285)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-285)\nAug 31 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n26\n1\n![](../images/031.png)\n[Building an Operational Ontology: An E-Commerce Walkthrough](https://www.dataengineeringweekly.com/p/building-an-operational-ontology)\n[The write side of the ontology conversation: named actions, business rules, and write-back to the systems of record — a pattern already running at…](https://www.dataengineeringweekly.com/p/building-an-operational-ontology)\nAug 26 • [Togo YAMANAKA](https://substack.com/@gura105)\n30\n5\n![](../images/body-5075e94a56269a5f37d2.png)\n[Data Engineering Weekly #284](https://www.dataengineeringweekly.com/p/data-engineering-weekly-284)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-284)\nAug 24 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n23\n2\n![](../images/031.png)\n[Data Engineering Weekly #283](https://www.dataengineeringweekly.com/p/data-engineering-weekly-283)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-283)\nAug 17 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n22\n2\n1\n![](../images/031.png)\n[What an Ontology for AI Agents Actually Needs](https://www.dataengineeringweekly.com/p/an-ontology-for-ai-agents-is-a-system)\n[How to think about the semantic system that makes an agent coherent, governable, and useful.](https://www.dataengineeringweekly.com/p/an-ontology-for-ai-agents-is-a-system)\nAug 14 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n59\n6\n10\n![](../images/body-9c716933a33070bcfeac.png)\n[Data Engineering Weekly #282](https://www.dataengineeringweekly.com/p/data-engineering-weekly-282)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-282)\nAug 10 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n33\n2\n![](../images/031.png)\n[On Benchmarking](https://www.dataengineeringweekly.com/p/on-benchmarking)\n[Why a throughput number is not an architecture decision.](https://www.dataengineeringweekly.com/p/on-benchmarking)\nAug 6 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n17\n2\n![](../images/body-e32e0b433a92bf2d605a.jpeg)\n[Data Engineering Weekly #281](https://www.dataengineeringweekly.com/p/data-engineering-weekly-281)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-281)\nAug 3 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n21\n2\n![](../images/031.png)\n### July 2026\n[Data Engineering Weekly #280](https://www.dataengineeringweekly.com/p/data-engineering-weekly-280)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-280)\nJul 27 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n28\n2\n![](../images/031.png)\n[Data Engineering Weekly #279](https://www.dataengineeringweekly.com/p/data-engineering-weekly-279)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-279)\nJul 20 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n18\n1\n![](../images/031.png)\n[Data Engineering Weekly #278](https://www.dataengineeringweekly.com/p/data-engineering-weekly-278)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-278)\nJul 13 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n20\n1\n![](../images/031.png)\n[Beyond Redaction: Anatomy of a Privacy-Safe Data Platform](https://www.dataengineeringweekly.com/p/beyond-redaction-anatomy-of-a-privacy)\n[Why privacy engineering is about governing data in use—not simply hiding it.](https://www.dataengineeringweekly.com/p/beyond-redaction-anatomy-of-a-privacy)\nJul 10 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n23\n1\n![](../images/body-9ed00076344e7fcc1d94.png)\n[Data Engineering Weekly #277](https://www.dataengineeringweekly.com/p/data-engineering-weekly-277)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-277)\nJul 6 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n19\n1\n![](../images/031.png)\n[Announcing leetdata.ai — A Practice Ground for Data Engineers](https://www.dataengineeringweekly.com/p/announcing-leetdataai-a-practice)\n[Software engineers got a gym. Data engineers got production. It's time to fix that.](https://www.dataengineeringweekly.com/p/announcing-leetdataai-a-practice)\nJul 2 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n33\n1\n3\n![](../images/body-e6eef5bdcdd21cba2ac9.png)\n### June 2026\n[Data Engineering Weekly #276](https://www.dataengineeringweekly.com/p/data-engineering-weekly-276)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-276)\nJun 29 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n15\n1\n![](../images/body-2bd887007ebf250f4385.png)\n[You Don't Graduate From Data Engineering: Why We Built aide for Continuous Learning](https://www.dataengineeringweekly.com/p/you-dont-graduate-from-data-engineering)\n[Introducing aidataengineer.io — an AI-powered learning platform built on 275+ editions of Data Engineering Weekly.](https://www.dataengineeringweekly.com/p/you-dont-graduate-from-data-engineering)\nJun 23 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n19\n1\n![](../images/body-44623365e4c2fadf5a6d.png)\n[Data Engineering Weekly #275](https://www.dataengineeringweekly.com/p/data-engineering-weekly-275)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-275)\nJun 22 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n13\n3\n![](../images/031.png)\n[Data Engineering Weekly #274](https://www.dataengineeringweekly.com/p/data-engineering-weekly-274)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-274)\nJun 15 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n27\n1\n![](../images/031.png)\n[Data Engineering Weekly #273](https://www.dataengineeringweekly.com/p/data-engineering-weekly-273)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-273)\nJun 8 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n13\n2\n![](../images/031.png)\n© 2026 Dewpeche Private Limited · [Privacy](https://substack.com/privacy) ∙ [Terms](https://substack.com/tos) ∙ [Collection notice](https://substack.com/ccpa#personal-data-collected)\n[ Start your Substack](https://substack.com/signup?utm_source=substack&utm_medium=web&utm_content=footer)[Get the app](https://substack.com/app/app-store-redirect?utm_campaign=app-marketing&utm_content=web-footer-button)\n[Substack](https://substack.com) is the home for great culture\n",
  "metadata": {
    "title": "Data Engineering Weekly | Ananth Packkildurai | Substack",
    "description": "The Weekly Data Engineering Newsletter. Click to read Data Engineering Weekly, by Ananth Packkildurai, a Substack publication.",
    "keywords": null,
    "author": "Ananth Packkildurai",
    "og:type": "article",
    "og:title": "Data Engineering Weekly | Ananth Packkildurai | Substack",
    "og:description": "The Weekly Data Engineering Newsletter. Click to read Data Engineering Weekly, by Ananth Packkildurai, a Substack publication.",
    "og:image": "https://substackcdn.com/image/fetch/$s_!NjlS!,f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Fdataengineeringweekly.substack.com%2Ftwitter%2Fsubscribe-card.jpg%3Fv%3D45380881%26version%3D9",
    "og:url": "https://www.dataengineeringweekly.com/modern-data-stack-tools",
    "twitter:title": "Data Engineering Weekly | Ananth Packkildurai | Substack",
    "twitter:description": "The Weekly Data Engineering Newsletter. Click to read Data Engineering Weekly, by Ananth Packkildurai, a Substack publication.",
    "twitter:image": "https://substackcdn.com/image/fetch/$s_!NjlS!,f_auto,q_auto:best,fl_progressive:steep/https%3A%2F%2Fdataengineeringweekly.substack.com%2Ftwitter%2Fsubscribe-card.jpg%3Fv%3D45380881%26version%3D9",
    "twitter:card": "summary_large_image"
  },
  "paywall": {
    "listed_paid": false,
    "detected": false,
    "marker": "",
    "public_only": false,
    "policy": "付费/会员内容只保留页面公开可见部分，不绕过付费墙"
  },
  "crawl": {
    "success": true,
    "status_code": 302,
    "error": ""
  },
  "code_blocks": [],
  "images": [
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!G1wc!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b7d616-ec7d-4d7f-b3db-a9205517cae1_1600x900.png",
      "bytes": 4875,
      "reused": true,
      "local_path": "attachments/0781728a6270/images/013.png",
      "src": "https://substackcdn.com/image/fetch/$s_!G1wc!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b7d616-ec7d-4d7f-b3db-a9205517cae1_1600x900.png",
      "alt": "",
      "downloaded": true,
      "discovery": "saved_markdown"
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png",
      "bytes": 6674,
      "reused": true,
      "local_path": "attachments/0781728a6270/images/031.png",
      "src": "https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png",
      "alt": "",
      "downloaded": true,
      "discovery": "saved_markdown"
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!YVld!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4435d98-5941-46ec-a0bb-a62bd34a39a1_2046x1296.png",
      "bytes": 9135,
      "reused": false,
      "content_type": "image/jpeg",
      "local_path": "attachments/0781728a6270/images/body-5075e94a56269a5f37d2.png",
      "src": "https://substackcdn.com/image/fetch/$s_!YVld!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4435d98-5941-46ec-a0bb-a62bd34a39a1_2046x1296.png",
      "alt": "",
      "downloaded": true,
      "discovery": "saved_markdown"
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!dvrY!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87da6998-2e65-43a3-a457-bf12a6971bf2_3192x1596.png",
      "bytes": 20953,
      "reused": false,
      "content_type": "image/jpeg",
      "local_path": "attachments/0781728a6270/images/body-9c716933a33070bcfeac.png",
      "src": "https://substackcdn.com/image/fetch/$s_!dvrY!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87da6998-2e65-43a3-a457-bf12a6971bf2_3192x1596.png",
      "alt": "",
      "downloaded": true,
      "discovery": "saved_markdown"
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!HPIh!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00dcaae6-8a6a-4f15-9d73-f1dc26b45185_500x713.jpeg",
      "bytes": 21474,
      "reused": false,
      "content_type": "image/jpeg",
      "local_path": "attachments/0781728a6270/images/body-e32e0b433a92bf2d605a.jpeg",
      "src": "https://substackcdn.com/image/fetch/$s_!HPIh!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00dcaae6-8a6a-4f15-9d73-f1dc26b45185_500x713.jpeg",
      "alt": "",
      "downloaded": true,
      "discovery": "saved_markdown"
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!eMyK!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F485b8767-1574-426f-9d52-458b254bd744_1800x1162.png",
      "bytes": 12996,
      "reused": false,
      "content_type": "image/jpeg",
      "local_path": "attachments/0781728a6270/images/body-9ed00076344e7fcc1d94.png",
      "src": "https://substackcdn.com/image/fetch/$s_!eMyK!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F485b8767-1574-426f-9d52-458b254bd744_1800x1162.png",
      "alt": "",
      "downloaded": true,
      "discovery": "saved_markdown"
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!Jwrx!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a2462c-ab59-48ff-b76d-70d6b087cdf4_1200x630.png",
      "bytes": 9171,
      "reused": false,
      "content_type": "image/jpeg",
      "local_path": "attachments/0781728a6270/images/body-e6eef5bdcdd21cba2ac9.png",
      "src": "https://substackcdn.com/image/fetch/$s_!Jwrx!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a2462c-ab59-48ff-b76d-70d6b087cdf4_1200x630.png",
      "alt": "",
      "downloaded": true,
      "discovery": "saved_markdown"
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!ln5h!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba91c8a2-df2b-4429-91aa-906827650fc7_1792x1792.png",
      "bytes": 15275,
      "reused": false,
      "content_type": "image/jpeg",
      "local_path": "attachments/0781728a6270/images/body-2bd887007ebf250f4385.png",
      "src": "https://substackcdn.com/image/fetch/$s_!ln5h!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba91c8a2-df2b-4429-91aa-906827650fc7_1792x1792.png",
      "alt": "",
      "downloaded": true,
      "discovery": "saved_markdown"
    },
    {
      "status": "ok",
      "url": "https://substackcdn.com/image/fetch/$s_!PIPz!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea56f906-87de-4570-9ea3-19c77aefee24_1200x600.png",
      "bytes": 11493,
      "reused": false,
      "content_type": "image/jpeg",
      "local_path": "attachments/0781728a6270/images/body-44623365e4c2fadf5a6d.png",
      "src": "https://substackcdn.com/image/fetch/$s_!PIPz!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea56f906-87de-4570-9ea3-19c77aefee24_1200x600.png",
      "alt": "",
      "downloaded": true,
      "discovery": "saved_markdown"
    }
  ],
  "audio": [],
  "videos": [],
  "links": [
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/notes"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/chat"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/archive"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/about"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/thinking-like-a-data-architect"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-289"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-288"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-287"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-286"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-285"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/building-an-operational-ontology"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-284"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-283"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/an-ontology-for-ai-agents-is-a-system"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-282"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/on-benchmarking"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-281"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-280"
    },
    {
      "type": "internal",
      "href": "https://www.dataengineeringweekly.com/p/data-engineering-weekly-279"
    },
    {
      "type": "external",
      "href": "https://podcasts.apple.com/us/podcast/data-engineering-weekly/id1610960581"
    },
    {
      "type": "external",
      "href": "https://leetdata.ai/"
    },
    {
      "type": "external",
      "href": "https://substack.com/@dataengineeringweekly"
    },
    {
      "type": "external",
      "href": "https://substack.com/@gura105"
    },
    {
      "type": "external",
      "href": "https://substack.com/privacy"
    },
    {
      "type": "external",
      "href": "https://substack.com/tos"
    },
    {
      "type": "external",
      "href": "https://substack.com/ccpa"
    },
    {
      "type": "external",
      "href": "https://substack.com/signup"
    },
    {
      "type": "external",
      "href": "https://substack.com/app/app-store-redirect"
    },
    {
      "type": "external",
      "href": "https://substack.com"
    }
  ],
  "repair_version": 2,
  "repaired_at": "2026-10-20T17:31:03Z",
  "source_url": "https://www.dataengineeringweekly.com/p/modern-data-stack-tools",
  "delivery_status": "unverified",
  "discovery_status": "http_404",
  "missing_reason": "http_404",
  "repair_error": "",
  "actual_video_files": [],
  "expected_saved_body_images": 9,
  "image_discovery": "saved_markdown",
  "source_body_markdown": "[![Data Engineering Weekly](https://substackcdn.com/image/fetch/$s_!AdQk!,w_40,h_40,c_fill,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)](https://www.dataengineeringweekly.com/)\n# [Data Engineering Weekly](https://www.dataengineeringweekly.com/)\nSubscribeSign in\n[Home](https://www.dataengineeringweekly.com/)\n[Notes](https://www.dataengineeringweekly.com/notes)\n[Chat](https://www.dataengineeringweekly.com/chat)\n[Podcast](https://podcasts.apple.com/us/podcast/data-engineering-weekly/id1610960581)\n[leetdata.ai](https://leetdata.ai/)\n[Archive](https://www.dataengineeringweekly.com/archive)\n[About](https://www.dataengineeringweekly.com/about)\n## Page not found\nLatestTopDiscussions\n[Thinking Like a Data Architect](https://www.dataengineeringweekly.com/p/thinking-like-a-data-architect)\n[A field guide for data leaders](https://www.dataengineeringweekly.com/p/thinking-like-a-data-architect)\nSep 30 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n39\n2\n1\n![](https://substackcdn.com/image/fetch/$s_!G1wc!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F72b7d616-ec7d-4d7f-b3db-a9205517cae1_1600x900.png)\n[Data Engineering Weekly #289](https://www.dataengineeringweekly.com/p/data-engineering-weekly-289)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-289)\nSep 28 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n23\n2\n1\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Data Engineering Weekly #288](https://www.dataengineeringweekly.com/p/data-engineering-weekly-288)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-288)\nSep 21 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n30\n1\n2\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Data Engineering Weekly #287](https://www.dataengineeringweekly.com/p/data-engineering-weekly-287)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-287)\nSep 14 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n29\n2\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Data Engineering Weekly #286](https://www.dataengineeringweekly.com/p/data-engineering-weekly-286)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-286)\nSep 7 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n24\n1\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n### August 2026\n[Data Engineering Weekly #285](https://www.dataengineeringweekly.com/p/data-engineering-weekly-285)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-285)\nAug 31 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n26\n1\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Building an Operational Ontology: An E-Commerce Walkthrough](https://www.dataengineeringweekly.com/p/building-an-operational-ontology)\n[The write side of the ontology conversation: named actions, business rules, and write-back to the systems of record — a pattern already running at…](https://www.dataengineeringweekly.com/p/building-an-operational-ontology)\nAug 26 • [Togo YAMANAKA](https://substack.com/@gura105)\n30\n5\n![](https://substackcdn.com/image/fetch/$s_!YVld!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe4435d98-5941-46ec-a0bb-a62bd34a39a1_2046x1296.png)\n[Data Engineering Weekly #284](https://www.dataengineeringweekly.com/p/data-engineering-weekly-284)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-284)\nAug 24 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n23\n2\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Data Engineering Weekly #283](https://www.dataengineeringweekly.com/p/data-engineering-weekly-283)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-283)\nAug 17 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n22\n2\n1\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[What an Ontology for AI Agents Actually Needs](https://www.dataengineeringweekly.com/p/an-ontology-for-ai-agents-is-a-system)\n[How to think about the semantic system that makes an agent coherent, governable, and useful.](https://www.dataengineeringweekly.com/p/an-ontology-for-ai-agents-is-a-system)\nAug 14 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n59\n6\n10\n![](https://substackcdn.com/image/fetch/$s_!dvrY!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87da6998-2e65-43a3-a457-bf12a6971bf2_3192x1596.png)\n[Data Engineering Weekly #282](https://www.dataengineeringweekly.com/p/data-engineering-weekly-282)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-282)\nAug 10 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n33\n2\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[On Benchmarking](https://www.dataengineeringweekly.com/p/on-benchmarking)\n[Why a throughput number is not an architecture decision.](https://www.dataengineeringweekly.com/p/on-benchmarking)\nAug 6 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n17\n2\n![](https://substackcdn.com/image/fetch/$s_!HPIh!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F00dcaae6-8a6a-4f15-9d73-f1dc26b45185_500x713.jpeg)\n[Data Engineering Weekly #281](https://www.dataengineeringweekly.com/p/data-engineering-weekly-281)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-281)\nAug 3 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n21\n2\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n### July 2026\n[Data Engineering Weekly #280](https://www.dataengineeringweekly.com/p/data-engineering-weekly-280)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-280)\nJul 27 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n28\n2\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Data Engineering Weekly #279](https://www.dataengineeringweekly.com/p/data-engineering-weekly-279)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-279)\nJul 20 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n18\n1\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Data Engineering Weekly #278](https://www.dataengineeringweekly.com/p/data-engineering-weekly-278)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-278)\nJul 13 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n20\n1\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Beyond Redaction: Anatomy of a Privacy-Safe Data Platform](https://www.dataengineeringweekly.com/p/beyond-redaction-anatomy-of-a-privacy)\n[Why privacy engineering is about governing data in use—not simply hiding it.](https://www.dataengineeringweekly.com/p/beyond-redaction-anatomy-of-a-privacy)\nJul 10 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n23\n1\n![](https://substackcdn.com/image/fetch/$s_!eMyK!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F485b8767-1574-426f-9d52-458b254bd744_1800x1162.png)\n[Data Engineering Weekly #277](https://www.dataengineeringweekly.com/p/data-engineering-weekly-277)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-277)\nJul 6 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n19\n1\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Announcing leetdata.ai — A Practice Ground for Data Engineers](https://www.dataengineeringweekly.com/p/announcing-leetdataai-a-practice)\n[Software engineers got a gym. Data engineers got production. It's time to fix that.](https://www.dataengineeringweekly.com/p/announcing-leetdataai-a-practice)\nJul 2 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n33\n1\n3\n![](https://substackcdn.com/image/fetch/$s_!Jwrx!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F13a2462c-ab59-48ff-b76d-70d6b087cdf4_1200x630.png)\n### June 2026\n[Data Engineering Weekly #276](https://www.dataengineeringweekly.com/p/data-engineering-weekly-276)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-276)\nJun 29 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n15\n1\n![](https://substackcdn.com/image/fetch/$s_!ln5h!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fba91c8a2-df2b-4429-91aa-906827650fc7_1792x1792.png)\n[You Don't Graduate From Data Engineering: Why We Built aide for Continuous Learning](https://www.dataengineeringweekly.com/p/you-dont-graduate-from-data-engineering)\n[Introducing aidataengineer.io — an AI-powered learning platform built on 275+ editions of Data Engineering Weekly.](https://www.dataengineeringweekly.com/p/you-dont-graduate-from-data-engineering)\nJun 23 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n19\n1\n![](https://substackcdn.com/image/fetch/$s_!PIPz!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fea56f906-87de-4570-9ea3-19c77aefee24_1200x600.png)\n[Data Engineering Weekly #275](https://www.dataengineeringweekly.com/p/data-engineering-weekly-275)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-275)\nJun 22 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n13\n3\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Data Engineering Weekly #274](https://www.dataengineeringweekly.com/p/data-engineering-weekly-274)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-274)\nJun 15 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n27\n1\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n[Data Engineering Weekly #273](https://www.dataengineeringweekly.com/p/data-engineering-weekly-273)\n[The Weekly Data Engineering Newsletter](https://www.dataengineeringweekly.com/p/data-engineering-weekly-273)\nJun 8 • [Ananth Packkildurai](https://substack.com/@dataengineeringweekly)\n13\n2\n![](https://substackcdn.com/image/fetch/$s_!AdQk!,w_320,h_213,c_fill,f_auto,q_auto:good,fl_progressive:steep,g_center/https%3A%2F%2Fbucketeer-e05bbc84-baa3-437e-9518-adb32be77984.s3.amazonaws.com%2Fpublic%2Fimages%2F6f51c1bf-abc9-4cd3-ad69-22cc8e3f1ef2_1080x1080.png)\n© 2026 Dewpeche Private Limited · [Privacy](https://substack.com/privacy) ∙ [Terms](https://substack.com/tos) ∙ [Collection notice](https://substack.com/ccpa#personal-data-collected)\n[ Start your Substack](https://substack.com/signup?utm_source=substack&utm_medium=web&utm_content=footer)[Get the app](https://substack.com/app/app-store-redirect?utm_campaign=app-marketing&utm_content=web-footer-button)\n[Substack](https://substack.com) is the home for great culture\n",
  "body_base_path": "attachments/0781728a6270/pages/",
  "body_markdown_path": "attachments/0781728a6270/pages/archived-body.md",
  "local_html": "attachments/0781728a6270/pages/archived-body.html",
  "body_source": "prior_capture"
}