使用 DashDB 作为数据库(而不是数据仓库)

Using DashDB as a database (instead of a Data warehouse)

注意:这不是编程问题(至少目前不是)。一旦我开始进一步进步,就会寻求社区对编程问题的帮助。如果认为此问题不合适,请随时将其删除。

我正在尝试开始使用 DashDB 作为 Bluemix 上的数据库。 DashDB 数据将由 Java/Java EE 应用程序

使用

我不打算将其用作数据仓库。

据我所知,DashDB 有两种类型 - 常规(此处泛指标准产品)和 DashDB Transactional。

DashDB 事务,我相信是用于事务性工作负载。

  1. 我想了解 JPA 是否可以很好地与 DashDB 配合使用。我无法在此 space.
  2. 中找到好的信息
  3. 我们应该对 DashDB Regular 和 Transactional 使用非规范化设计吗?

dashDB Transactional Bluemix 计划提供了一个针对联机事务处理 (OLTP) 优化的 dashDB 数据库。这意味着它专为高度结构化的重复处理而设计,并且支持 ACID 事务。也就是说,您应该使用经典 RDBMS 的所有最佳实践:规范化、约束等。我确认 dashDB-JPA 集成还没有很好的文档记录,但是将它与 JPA 一起使用应该没有特别的问题。由于您的应用程序将 运行 运行在 Liberty Runtime 上,因此当您绑定 dashDB 服务实例时,server.xml 会自动配置带有 JNDI 名称的数据源,并且还会添加数据库驱动程序 jar。

JPA 目前无法与 DashDB 无缝协作。 DashDB 默认使用按列组织,而 JPA 不能很好地使用它。现在没有特定的方法可以使用 JPA 中的注释设置按行组织。我们试图覆盖 DB2Dictionary,但这也不起作用。

如果我使用 sql 语句删除 table 并使用附加有按行组织的 sql 语句重新创建 table,则 JPA 能够读取 table.

不确定应该由谁来解决此问题 - JPA 或 DashDB :)