Как я могу реализовать составное разбиение с разбиением по диапазонам и разбиение списка в Hibernate с помощью Java - PullRequest
0 голосов
/ 25 мая 2020

Мне нужен хороший пример реализации Composite Partitioning с Range Partitioning и List Partitioning в Hibernate с java, в основном у меня есть большие данные с устройств IOT и мне нужно разделить их с областью установленных устройств (около 1000 ~ 5000 устройств) которые имеют 30 областей с историей любого устройства, имеют более 5 лет, что может иметь одно устройство 2 ~ 3 миллиона записей (строка на устройство), поэтому, если я храню все записи устройств в одной таблице, у меня огромная проблема с CURD, поэтому я решил использовать Composite Partitioning для решения этой проблемы в ORACLE базе данных 19 c с другой стороны Я ленивый парень! поэтому я использую Hibernate в java для подключения моей базы данных и использую HQL для управления CURD с помощью DAO. И мне нужен способ реализации этого в Hibernate, чтобы иметь максимально возможную базу данных производительности и скорость кодирования, чтобы любой орган знал, как это сделать? Часть моих классов bean-компонентов:

@MappedSuperclass
public class SuperBean implements Serializable {

    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy= GenerationType.IDENTITY,generator="native")
    @GenericGenerator(name = "native",strategy = "native")
    private long id;

    @Temporal(TemporalType.TIMESTAMP)
    // in oracle need trigger for update on change value!
    @Column(name="date_update" ,nullable = false, columnDefinition = "TIMESTAMP default CURRENT_TIMESTAMP")
    private Date updateIn = new Date();

    public long getId() {
        return id;
    }

    public void setId(long id) {
        this.id = id;
    }

    public Date getUpdateIn() {
        return updateIn;
    }

    public void setUpdateIn(Date updateIn) {
        this.updateIn = updateIn;
    }





}

public class IotDeviceInfo extends SuperBean {
private int deviceId;
private String name;
private Area area;
// and other var
    private Data data;
// Getter and Setters

}

Класс данных, с которым у меня проблема, и мне нужно реализовать составное секционирование с секционированием диапазона и секционированием списка:

public class Data extends SuperBean {
    private Date time_from_device_info ;
    private Date time_receive_data = new Date();
    private long movement;
//Getter and setter
}
public class Area extends SuperBean {
    private String name;
//Getter and setter
}
...