Ra mắt tính năng mã hóa cột (Hash Columns)
Ra mắt Hash Columns, cho phép mã hóa (hash) các cột chứa dữ liệu cá nhân như email, số điện thoại ngay trong quá trình nạp dữ liệu, để giá trị gốc không bao giờ được lưu ở đích.
Nhiều bảng dữ liệu chứa thông tin cá nhân của khách hàng mà đội phân tích không cần đọc giá trị thật, nhưng vẫn cần dùng để đếm, nhóm hoặc nối (join) dữ liệu. Với Hash Columns, bạn chọn các cột cần bảo vệ và hệ thống sẽ nạp giá trị đã mã hóa thay cho giá trị gốc.
Điểm nổi bật của tính năng
Mã hóa trước khi dữ liệu rời khỏi hệ thống xử lý
- Giá trị được mã hóa ngay trong bộ nhớ khi trích xuất, trước khi ghi ra file trung gian (staging), nên giá trị gốc không xuất hiện ở staging lẫn bảng đích.
- Sử dụng thuật toán HMAC-SHA256 với khóa riêng cho từng workspace. Không thể khôi phục giá trị gốc từ giá trị đã mã hóa.
Vẫn nối (join) được dữ liệu
- Cùng một giá trị luôn cho ra cùng một kết quả mã hóa, kể cả giữa các Connection khác nhau, nên bạn vẫn có thể nối các bảng theo cột đã mã hóa.
- Có thể mã hóa cả trường khóa (key field): việc loại trùng và merge vẫn hoạt động bình thường.
Hỗ trợ nhiều loại nguồn
- RDBMS: chọn cột cần mã hóa cho từng bảng.
- MongoDB: nhập tên trường dạng đường dẫn (ví dụ
customer.email) hoặc tên trường đã làm phẳng (ví dụcustomer_email). Hỗ trợ cả mảng và mảng đối tượng. - Nguồn API: chọn từ danh sách cột được phép mã hóa của từng loại dữ liệu, bắt đầu với Oviro.
Đích hỗ trợ
- BigQuery, Amazon S3, Amazon Redshift, ClickHouse, PostgreSQL, SQL Server. Với nguồn MongoDB: BigQuery, ClickHouse, PostgreSQL, SQL Server.
Những điều cần lưu ý
- Cột đã mã hóa luôn được lưu dưới dạng chuỗi (STRING) ở đích, bất kể kiểu dữ liệu gốc. Giá trị NULL vẫn giữ là NULL.
- Mã hóa phân biệt chữ hoa/thường (
[email protected]và[email protected]cho kết quả khác nhau). Số, ngày giờ lưu dạng văn bản hoặc thời gian ở múi giờ khác cũng cho kết quả khác, nên chỉ nối được khi giá trị được lưu theo cùng một cách. - Sau khi thêm, bớt hoặc thay đổi cột mã hóa, dữ liệu cũ ở đích vẫn giữ giá trị trước đó và lần chạy incremental tiếp theo có thể lỗi do thay đổi kiểu dữ liệu. Hãy chạy Full reload để ghi lại toàn bộ bảng.
- Với đích BigQuery, lần Full reload đầu tiên sau khi thay đổi sẽ xóa các bản sao lưu (backup) và file lưu trữ cũ còn chứa giá trị gốc. Thao tác này không thể hoàn tác. Với các đích khác, bản sao lưu cũ chưa được tự động xóa.
- Không thể mã hóa các cột dùng làm trường incremental (max field), cột phân vùng của bảng đích hoặc cột đang được cấu hình giải mã khi nạp.
- Đích MySQL chưa được hỗ trợ.