Amazon is a slightly annoying company that I rarely root for, but Oracle is a predatory company whose customer relations strategy seems to actively involve litigating them as a default assumption.<p>Amazon is considered a paragon of IT, so their expulsion of Oracle is a useful tool at the CIO/CTO level of "nobody ever got fired for IBM" level of reasoning.<p>Unfortunately, AWS is becoming the new IBM in that reasoning. Great that it took ten years to reach that level of agreement, now hybrid cloud needs to take over the grey haired CIO / CTO level.<p>Long live Postgresql!
We've been working on migrating from Oracle to Postgres for a few years now. We are about 2 weeks from being finished. It is not for the faint of heart, but it is totally worth it. The documentation is much much better, performance is equivalent or better, the sql dialect is saner, etc. Other than moving the data itself (ora2pg was invaluable for this), rewriting the queries is what has taken the most amount of time. Some of our tips on differences between oracle and postgres sql:<p>replace nvl with coalesce<p>replace rownum <= 1 with LIMIT 1<p>replace listagg with string_agg<p>replace recursive hierarchy (start with/connect by/prior) with recursive<p>replace minus with except<p>replace SYSDATE with CURRENT_TIMESTAMP<p>replace trunc(sysdate) with CURRENT_DATE<p>replace trunc(datelastupdated) with DATE(datelastupduted) or datelastupdated::date<p>replace artificial date sentinels/fenceposts like to_date(’01 Jan 1900’) with '-infinity'::date<p>remove dual table references (not needed in postgres)<p>replace decode with case statements<p>replace unique with distinct<p>replace to_number with ::integer<p>replace mod with % operator<p>replace merge into with INSERT ... ON CONFLICT… DO UPDATE/NOTHING<p>change the default of any table using sys_guid() as a default to gen_random_uuid()<p>oracle pivot and unpivot do not work in postgres - use unnest<p>ORDER BY NLSSORT(english, 'NLS_SORT=generic_m') becomes ORDER BY gin(insensitive_query(english) gin_trgm_ops)<p>Oracle: uses IS NULL to check for empty string; in postgres, empty string and null are different<p>If a varchar/text column has a unique index a check needs to be made to make sure empty strings are changed to nulls before adding or updating the column.<p>PostgreSQL requires a sub-SELECT surrounded by parentheses, and an alias must be provided for it. - SELECT * FROM ( ) A<p>any functions in the order by clause must be moved to the select statement (e.g. order by lower(column_name))<p>Any sort of numeric/integer/bigint/etc. inside of a IN statement must not be a string (including 'null' - don't bother trying to use null="" it won't
work).
Concatenating a NULL with a NOT NULL will result in a NULL.<p>Pay attention to any left joins. If a column from a left join is used in a where or select clause it might be null.<p>For sequences, instead of .nextval use nextval('')
The video feels like a big middle finger to Oracle.<p>"stop oracle", and the URL <a href="https://aws.amazon.com/products/databases/freedom" rel="nofollow">https://aws.amazon.com/products/databases/freedom</a>.<p>Not that I'm complaining, Oracle deserves all the hate they get for their business practices.<p>But associating AWS with "breaking free" is extremely ironic. It's just as much of a source for vendor lock in as Oracle.<p>If you are not extremely careful/dedicated with your system design, you are never moving off of AWS ever again, or only with a huge engineering effort that almost no-one will swallow. AWS also knows this very well: discounts are harder to come by if they can tell you are totally locked in to their infrastructure.<p>Combine that with the fact that AWS loves to fork OS projects and build products out of them, without contributing back upstream.<p>AWS is a terrific platform in many ways, but it is certainly not something that will lead to freedom of choice.
> Across the 48 hours of Prime Day, these sources made 7.11 trillion calls to the DynamoDB API, peaking at 45.4 million requests per second.<p>> The team added an additional 63 petabytes of storage ahead of Prime Day; the resulting fleet handled 2.1 trillion requests per day and transferred 185 petabytes of data per day.<p>> Prime Day 2019 also relied on a massive, diverse collection of EC2 instances. The internal scaling metric for these instances is known as a server equivalent; Prime Day started off with 372K server equivalents and scaled up to 426K at peak.<p>Woah.<p><a href="https://aws.amazon.com/blogs/aws/amazon-prime-day-2019-powered-by-aws/" rel="nofollow">https://aws.amazon.com/blogs/aws/amazon-prime-day-2019-power...</a>
I wonder if anyone here has seen any net new adoption of Oracle DBs in the last few years? It was an absolute juggernaut 10-15 years ago and has rapidly tanked their reputation and spread their business across software, services and cloud with mixed results. Is it actually still growing or just milking their stodgy enterprise customers for more money?
Here is the meat of the Report:<p>>We migrated 75 petabytes of internal data stored in nearly 7,500 Oracle databases to multiple AWS database services including Amazon DynamoDB,Aurora, RDS, and Redshift.<p>>We kept careful track of the costs and the performance, and realized the following results:<p>>Cost Reduction – We reduced our database costs by over 60% on top of the heavily discounted rate we negotiated based on our scale. Customers regularly report cost savings of 90% by switching from Oracle to AWS.<p>>Performance Improvements – Latency of our consumer-facing applications was reduced by 40%.<p>>Administrative Overhead – The switch to managed services reduced database admin overhead by 70%.
Here's the key difference between Oracle and AWS:<p>- Oracle will schedule periodic audits on their customers and legally threaten them for inadvertent licensing oversights<p>- AWS makes it a mandatory policy that all their sales folks periodically sit with their customers to help optimise and reduce their ongoing AWS Cloud costs<p>If you are making a case that Oracle == AWS, you don't know what you are talking about. Yes, I have dealt with both these companies up close.
Amazon's leadership famously pushed hard in the early 2000s for all its systems to share data only via service interfaces ( <a href="https://gist.github.com/chitchcock/1281611" rel="nofollow">https://gist.github.com/chitchcock/1281611</a> ).<p>I wonder how much of the reason for that was actually a wish to avoid getting further locked in to Oracle (changing or removing a database that backs a single service is very much easier than changing a database that also acts as an integration point).
It should be noted that the email that Steve Yegge made famous was:<p>1) The birth of the service oriented architecture as a standard at Amazon<p>2) Took place long before AWS was used by Amazon's commercial business, and most software systems were monolithic, requiring mainframe-like dedicated hardware.<p>3) Was inspired due to the epic spaghetti monster known as FC Software, whose entire non-architecture revolved around a massive Oracle database.<p>When Amazon hit the limits of scaling the Oracle databases with beefier hardware, they realized what a clusterfuck they had created. There were literally hundreds of applications, doing different things, but all connected to the oracle database. The oracle database functioned as a database, but also as a high throughput queue, as well as a message passing platform. At high loads, different applications were hitting the same rows so frequently that the transaction errors alone could bring down an entire fulfillment center.<p>And it should also be noted that it was the same FC Systems (the inspiration for the move towards SOA) that took 12 years to finally get rid of Oracle.<p>Moral of the story: you need competent software architects, and at the very least, a scalability plan. Also, fuck Oracle.
In my mind the true "hard part" would be in migrating business logic that lives in Oracle stored procedures (PL-SQL). Are there any tools that do a decent job in translating procs to non-Oracle dialects?
Oracle goes after customers with 3rd party companies, if you use oracle expect calls for audits and more licenses. You download virtualbox extension at work? Thats a fee per user. Use an Oracle VM in a vmware cluster? They want paid for all cores in your environment now.<p>Seriously, Oracle goes after their customers like criminals. I refuse their calls at work, they really are just looking for something to make you pay.
Migrating everything to the same externally-available cloud infrastructure is exactly the thing that Google needs to do, but has been failing at for going on a decade now. Yes, I'm bitter about it.
> The migration gave each internal team the freedom to choose the purpose-built AWS database service that best fit their needs, and also gave them better control over their budget and their cost model.<p>Anyone know of a comprehensive resource that we could use to figure out which DB to use?
This is Jeff Bezos calling out Larry Ellison on his bullshit.<p><a href="https://www.youtube.com/watch?v=xrzMYL901AQ&feature=youtu.be&t=50" rel="nofollow">https://www.youtube.com/watch?v=xrzMYL901AQ&feature=youtu.be...</a>
"This team moved 40 TB of data with just one hour of downtime, and realized the same or better performance at half the cost, powered by Amazon Aurora."<p>Would have loved to have read some technical details on how 40 Tbyte was transferred in an hour, even migrated.
As someone who has never used or worked with Oracle DBs, can someone explain why migrating to another technology is so difficult?<p>With all the database engines available, is there really not another one that can match Oracle without massive customizations?
Will be interesting to see whether Amazon can make their insight into a service. Countless companies would be glad about a migration path from Oracle to AWS's solutions.
Is "Amazon's Consumer Area" deliberately specific? That is, are they still using Oracle somewhere else? (Despite 75 petabytes being significant)<p>Edit: I did see <i>"some third-party applications are tightly bound to Oracle and were not migrated"</i>. Curious if that's all that is left, globally, at AMZN.
It took Amazon.com, a large company with tons of incentives and a strong mandate from the top floors, 7-8 years (at least!) to get out of Oracle.<p>I can easily imagine how "normal" companies will not have such an easy time doing so. I guess we're going to have Oracle around for a long time.
Notice they don't say that AWS has completely migrated off Oracle. There was plenty of Oracle there 5 years ago, including at the core of some of the most popular services. (There was also a significant migration effort underway then as well, mostly to DynamoDB.)
They beat their own estimates:<p><a href="https://www.cnbc.com/2018/08/01/amazon-plans-to-move-off-oracle-software-by-early-2020.html" rel="nofollow">https://www.cnbc.com/2018/08/01/amazon-plans-to-move-off-ora...</a>
Price is the only main reason I see which drive this migration.<p>About Oracle Database (not Oracle company), I am very much in agreement that (PL)SQL can be used as one language to take care of Relational Algebra, Row oriented, Column oriented, Document oriented and also Blockchain oriented disk persistent tables with local node partitioning and distributed sharding, Graph traversals queries using recursive CTEs, auto tuning of indexes, streaming materialized views, distributed topic/queues.<p>Oh by the way with little effort you can accomplish almost all what Oracle does with PostgreSQL and its community extensions.
Oracle should have been doing everything to keep them as a customer and push their databases through cloud offerings. They already push their software through resellers, sort of the same thing, just automatic
There was recently a similar story about Amazon Fulfillment turning off the final Oracle Database: <a href="https://twitter.com/jdarrow/status/1111629087947132928" rel="nofollow">https://twitter.com/jdarrow/status/1111629087947132928</a><p>I wasn't aware they are doing this PR pieces on a department by department basis.<p>Are there any more remaining Amazon departments still doing this process?
Most of what Amazon is talking about is the Oracle Old database product, check out Oracle's latest offering that is powered by AI - Autonomous Databases: <a href="https://www.oracle.com/database/autonomous-database.html" rel="nofollow">https://www.oracle.com/database/autonomous-database.html</a>
The very fact that they are dogfooding DynamoDB (with core features of their business) makes me want to take it more seriously and use it more.<p>I also love that they didn't just replace Oracle with <insert competing RDBMS here> but instead thoughtfully pieced together a strategy based on what the data was going to be used for.<p>Well done!
> Financial Ledger – This team moved 120 TB of data, reduced latency by 40%, cut costs by 70%, and cut overhead by the same 70%, all powered by DynamoDB.<p>Does this mean they have a custom set of books running atop DynamoDB or is this specific to aggregate reporting and financial data warehousing?
Oracle would have the set of tools for providing a interesting opinionated cloud/onprem platform for microservices architecture.<p>Something along the lines of JavaEE, deployed on something derived from WebLogic, bound together with reliable messaging bus (Tuxedo), backed by Oracle database.
We have a huge database problem at my company (department). There are only 4 databases for 200 developers. I find this extremely cumbersome to develop on. Ideally there would be at least 1 DB per developer plus some shared environments. What do others do?
The business case to stop managing Oracle contracts and licencing is probably pretty good, especially when factoring in the sick days and stress leave of employees dealing with their infuriating people, processes and tools.
This is a good thing, given this description of the Oracle database:<p><a href="https://news.ycombinator.com/item?id=18442941" rel="nofollow">https://news.ycombinator.com/item?id=18442941</a>
The video strikes me as an epic troll:<p><a href="https://www.youtube.com/watch?v=9yBP5gnnZi4&feature=youtu.be" rel="nofollow">https://www.youtube.com/watch?v=9yBP5gnnZi4&feature=youtu.be</a>
Obviously, enough Amazon bots are giving me bad karma, but my point stands: No, Amazon is not a special snowflake because it did this.<p>This was an expensive exercise in spite, took a long time and a lot of people - and everyone knows it.<p>They could have done this far efficiently already if they wanted to scale out, but that company has too many conflicting internal priorities that they took a heck of a long time to move away to anything that scales.<p>They never try to invent things and if not Oracle, they'd use some other vendor built software. That is the true reality of this company.<p>So no, if you're thinking you're better than this company for moving away from vendor built software, you are mistaken. In the worst possible way.