Dự án Bigmemory

Xử lý dữ liệu có khả năng mở rộng trong R

Michael Kane

Assistant Professor, Yale University

bigmemory

bigmemory dùng để lưu trữ, thao tác và xử lý các ma trận lớn, có thể lớn hơn RAM của máy tính

Xử lý dữ liệu có khả năng mở rộng trong R

big.matrix

  • Tạo
  • Truy xuất
  • Lấy tập con
  • Tóm tắt
Xử lý dữ liệu có khả năng mở rộng trong R

"Out-of-core" nghĩa là gì?

  • Các đối tượng R được giữ trong RAM

  • Khi bạn hết RAM

    • Dữ liệu được chuyển xuống đĩa
    • Chương trình tiếp tục chạy (chậm) hoặc bị treo

Tốt hơn là chỉ đưa dữ liệu vào RAM khi cần xử lý.

Xử lý dữ liệu có khả năng mở rộng trong R

Khi nào dùng big.matrix?

  • 20% dung lượng RAM
  • Ma trận đặc
Xử lý dữ liệu có khả năng mở rộng trong R

Tổng quan về bigmemory

  • bigmemory triển khai kiểu dữ liệu big.matrix, dùng để tạo, lưu, truy cập và thao tác các ma trận lưu trên đĩa

  • Dữ liệu được giữ trên đĩa và tự động chuyển vào RAM khi cần

Xử lý dữ liệu có khả năng mở rộng trong R

Tổng quan về bigmemory

Một đối tượng big.matrix:

  • Chỉ cần import một lần
  • Tệp "backing"
  • Tệp "descriptor"
Xử lý dữ liệu có khả năng mở rộng trong R

Ví dụ với bigmemory

library(bigmemory)

# Tạo một đối tượng big.matrix mới x <- big.matrix(nrow = 1, ncol = 3, type = "double", init = 0, backingfile = "hello_big_matrix.bin", descriptorfile = "hello_big_matrix.desc")
Xử lý dữ liệu có khả năng mở rộng trong R

tệp backing và descriptor

  • backing file: biểu diễn nhị phân của ma trận trên đĩa
  • descriptor file: chứa siêu dữ liệu, như số hàng, cột, tên, v.v.
Xử lý dữ liệu có khả năng mở rộng trong R

Ví dụ với bigmemory

# Xem nội dung
 x[,]
  0    0    0
x
Một đối tượng thuộc lớp "big.matrix"
Ô "address":
<pointer: 0x108e2a9a0>
Xử lý dữ liệu có khả năng mở rộng trong R

Tương đồng với ma trận

# Đổi giá trị ở hàng 1, cột 1
x[1, 1] <- 3
# Kiểm tra thay đổi
x[,]
   3    0    0
Xử lý dữ liệu có khả năng mở rộng trong R

Cùng luyện tập nào!

Xử lý dữ liệu có khả năng mở rộng trong R

Preparing Video For Download...