PageSourceSearch

https://erpl.io/assets/js/b6acc901.b05af611.js

js erpl.io collected 2026-10-03 23:24:43 UTC 5,251 bytes, 1 lines download raw bytes

1"use strict";(self.webpackChunkerpl_docusaurus=self.webpackChunkerpl_docusaurus||[]).push([[8262],{2477:e=>{e.exports=JSON.parse('{"permalink":"/blog/sap-duckdb-replication-faster-ingest-no-sap-sdk","editUrl":"https://github.com/datazoode/erpl-landingpage/tree/main/blog/2026-08-29-erpl-rev-faster-ingest-no-sdk/index.md","source":"@site/blog/2026-08-29-erpl-rev-faster-ingest-no-sdk/index.md","title":"erpl-rev: 2.5\xd7 Faster Ingest, and the SAP SDK Is Gone","description":"In June we shipped erpl-rev and explained why it was fast. Profiling it since turned up two more improvements: the DuckDB staging table can go entirely, and so can the SAP NW RFC SDK \u2014 replaced by erpl-proto in pure Rust. Ingest is now 2.5x faster in process. Here is where that shows up end to end, and where it does not.","date":"2026-08-29T00:00:00.000Z","tags":[{"inline":false,"label":"ERPL","permalink":"/blog/tags/erpl","description":"ERPL extension tutorials"},{"inline":false,"label":"SAP","permalink":"/blog/tags/sap","description":"SAP system integration"},{"inline":false,"label":"ABAP","permalink":"/blog/tags/abap","description":"ABAP development and tooling"},{"inline":false,"label":"DuckDB","permalink":"/blog/tags/duckdb","description":"DuckDB database tutorials"},{"inline":false,"label":"Performance","permalink":"/blog/tags/performance","description":"Performance optimization"},{"inline":false,"label":"SAP Integration","permalink":"/blog/tags/sap-integration","description":"SAP system integration"}],"readingTime":9.7,"hasTruncateMarker":true,"authors":[{"name":"Joachim Rosskopf","title":"Co-Founder & CEO","url":"https://data-zoo.de","socials":{"linkedin":"https://www.linkedin.com/in/joachim-rosskopf/","github":"https://github.com/jrosskopf"},"imageURL":"/images/profiles/profile_jr.png","key":"joachim-rosskopf","page":null}],"frontMatter":{"slug":"sap-duckdb-replication-faster-ingest-no-sap-sdk","title":"erpl-rev: 2.5\xd7 Faster Ingest, and the SAP SDK Is Gone","authors":["joachim-rosskopf"],"tags":["erpl","sap","abap","duckdb","performance","sap-integration"],"date":"2026-08-29T00:00:00.000Z","image":"./img/hero.jpg","description":"In June we shipped erpl-rev and explained why it was fast. Profiling it since turned up two more improvements: the DuckDB staging table can go entirely, and so can the SAP NW RFC SDK \u2014 replaced by erpl-proto in pure Rust. Ingest is now 2.5x faster in process. Here is where that shows up end to end, and where it does not."},"unlisted":false,"prevItem":{"title":"PyRFC Is Archived. Here Is a Drop-In Replacement.","permalink":"/blog/drop-in-replacement-for-archived-pyrfc"},"nextItem":{"title":"Reach On-Prem Postgres and SAP from a Cloud Container \u2014 Without Opening a Port","permalink":"/blog/reach-on-prem-postgres-sap-from-cloud-duckdb"}}')},28453:(e,t,n)=>{n.d(t,{R:()=>i,x:()=>o});var a=n(96540);const r={},s=a.createContext(r);function i(e){const t=a.useContext(s);return a.useMemo(function(){return"function"==typeof e?e(t):{...t,...e}},[t,e])}function o(e){let t;return t=e.disableParentContext?"function"==typeof e.components?e.components(r):e.components||r:i(e.components),a.createElement(s.Provider,{value:t},e.children)}},80404:(e,t,n)=>{n.r(t),n.d(t,{assets:()=>l,contentTitle:()=>o,default:()=>c,frontMatter:()=>i,metadata:()=>a,toc:()=>p});var a=n(2477),r=n(74848),s=n(28453);const i={slug:"sap-duckdb-replication-faster-ingest-no-sap-sdk",title:"erpl-rev: 2.5\xd7 Faster Ingest, and the SAP SDK Is Gone",authors:["joachim-rosskopf"],tags:["erpl","sap","abap","duckdb","performance","sap-integration"],date:new Date("2026-08-29T00:00:00.000Z"),image:"./img/hero.jpg",description:"In June we shipped erpl-rev and explained why it was fast. Profiling it since turned up two more improvements: the DuckDB staging table can go entirely, and so can the SAP NW RFC SDK \u2014 replaced by erpl-proto in pure Rust. Ingest is now 2.5x faster in process. Here is where that shows up end to end, and where it does not."},o=void 0,l={image:n(89194).A,authorsImageUrls:[void 0]},p=[];function d(e){const t={a:"a",em:"em",p:"p",...(0,s.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(t.p,{children:["In June I wrote up ",(0,r.jsx)(t.a,{href:"/blog/erpl-rev-10m-bseg-rows-a-minute",children:"erpl-rev"}
1)," \u2014 the little\nregistered RFC server that lets ABAP call ",(0,r.jsx)(t.em,{children:"out"})," into DuckDB \u2014 and it replicated\n10 million rows of a 400-column BSEG-shaped table in about a minute. That post\ndid not just claim a number, it explained ",(0,r.jsx)(t.em,{children:"why"})," the number was what it was."]}),"\n",(0,r.jsx)(t.p,{children:"Since then I put it under a profiler to find out what was still on the table.\nTwo things came back, pulling in opposite directions. A step that genuinely\nearned its place in June still had about a third of the ingest path left in it.\nAnd a constraint I had treated as fixed \u2014 SAP's proprietary RFC library \u2014\nturned out to be removable altogether."})]})}function c(e={}){const{wrapper:t}={...(0,s.R)(),...e.components};return t?(0,r.jsx)(t,{...e,children:(0,r.jsx)(d,{...e})}):d(e)}},89194:(e,t,n)=>{n.d(t,{A:()=>a});const a=n.p+"assets/images/hero-3f3bc1b16d6c0dd71ce549b4dfa312b9.jpg"}}]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.