Whether you’re a fan of MySQL or not, you cannot dispute the fact that it is the world’s most popular open-source database by a large margin (incidentally, it’s also the second most popular database ever, behind only its owner Oracle’s flagship commercial product). 25 years after its inception, MySQL has evolved into an essential and truly ubiquitous component of every web application stack and cloud platform. Even though some database experts might frown upon it for lacking “enterprise capabilities”, it is widely used by the largest enterprises around the world, like Facebook, YouTube, or Siemens.
However, while MySQL is widely used for transactional processing (OLTP), its ability to perform analytical processing (OLAP) is quite limited. Because the database engine lacks certain optimization functions crucial for running queries on aggregated data, its performance on OLAP workloads is underwhelming at best. For years, the only option MySQL users had was to export their transactional data into a different database system optimized for analytics and run their queries there. Well, not anymore!
MySQL and analytics: the holy grail for developers!
Last week, Oracle has announced MySQL Database Service Analytics Engine, a new incarnation of Oracle’s managed MySQL cloud service that’s optimized for high-performance analytics workloads. According to the company’s benchmarks, the new service can run typical analytical queries up to 400 times faster than “vanilla” MySQL.
Based on in-memory hybrid columnar technology (which sounds a lot like the stuff Oracle has already implemented in their commercial database), the engine is designed to directly access the transactional data from a MySQL database, create its in-memory representation optimized for OLAP processing and execute analytic queries, returning the results through the familiar MySQL programming interfaces. The engine supports near-linear scaling to a massive number of cores and thus can turn a MySQL database into a large and efficient data warehouse in the cloud.
Oracle is certainly not the first database vendor to take a popular open-source database engine and build an extended ecosystem around it. After all, AWS, its biggest competitor, has been doing similar things with its DBaaS services for years. Oracle’s latest offering however has a big and rather unique advantage: the OLTP and OLAP processing operates on the same data held within the same single database instance and all query optimization and execution is handled by the database core completely transparently. To a user or developer, the new OLAP-capable database looks and behaves exactly like a normal MySQL instance.
Less obvious benefits
Above anything else, this means that there is no need to create a separate copy of data for analytics, thus reducing the overall complexity and costs and increasing performance. A big part of Oracle’s presentation was devoted to direct comparisons to AWS’s Aurora and Redshift services, with both costs and performance ending up in Oracle’s favor.
As an analyst primarily focusing on cybersecurity, however, I was more impressed by the potential security and compliance benefits of an integrated OLTP/OLAP solution. Since the data (which for many types of transactional workloads is quite sensitive, containing personal, financial, and other regulated information) no longer needs to move between disparate data stores, this dramatically decreases the risks to its integrity and confidentiality.
Keeping the data in one place improves your company’s security posture, and in the end, helps avoid a data breach or compliance fine – and the best part is that it’s all just a free bonus to having much better data analytics.
So, where is the catch?
Doesn’t it somehow sound too good to be true? Surely there must be a catch? Well, the most obvious one is that Oracle’s solution does not extend the core MySQL engine; instead, it’s designed as an add-on service running on its own specialized infrastructure that integrates with Oracle’s managed MySQL service behind the scenes. Of course, it’s fully managed and thus transparent to users, but unfortunately, it means that the solution will remain an Oracle Cloud exclusive.
Of course, in Oracle’s case, being cloud-exclusive still means you can get the same service as a part of the company’s Cloud@Customer private cloud offering. Besides, the company’s announced the ability to replicate any on-prem MySQL instance to Oracle Cloud to enable transparent high-performance analytics on your legacy data. How is this replication supposed to handle data desensitization (anonymization) to ensure compliance with GDPR and similar regulations is still open, however…
As I mentioned in my earlier blog posts, it took Oracle years to figure out a proper cloud strategy: instead of trying to beat the competitors on their terms, the company should focus on its unique differentiators and their added value for Oracle cloud customers. MySQL Analytics Engine is definitely one of those services no other CSP is currently able to offer, and while cost reduction is still a major factor, security and compliance should be considered as well. Incidentally, KuppingerCole is planning to publish a new edition of our Leadership Compass on Database and Big Data Security soon. Watch this space!