KSUID ಜನಕ: ಕಾಲಕ್ರಮದಲ್ಲಿ ವರ್ಗೀಬದ್ಧವಾದ ಗುರುತಿನ ಸಂಖ್ಯೆ
ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳಲ್ಲಿ, ಡೇಟಾಬೇಸ್ಗಳಲ್ಲಿ ಮತ್ತು ವಿಶಿಷ್ಟ, ಕಾಲಕ್ರಮದಲ್ಲಿ ವರ್ಗೀಬದ್ಧವಾದ ಕೀಗಳನ್ನು ಅಗತ್ಯವಿರುವ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಬಳಸಲು K-ವರ್ಗೀಬದ್ಧವಾದ ವಿಶಿಷ್ಟ ಗುರುತಿನ ಸಂಖ್ಯೆ (KSUID)ಗಳನ್ನು ಉತ್ಪಾದಿಸಿ. KSUIDಗಳು ಕಾಲಚಕ್ರದೊಂದಿಗೆ ಯಾದೃಚ್ಛಿಕ ಡೇಟಾವನ್ನು ಸಂಯೋಜಿಸುತ್ತವೆ ಮತ್ತು ಗುರ್ತಿಸುವಿಕೆಗೆ ಪ್ರತಿರೋಧಕ, ವರ್ಗೀಬದ್ಧವಾದ ಗುರುತಿನ ಸಂಖ್ಯೆಗಳಾದ KSUIDಗಳನ್ನು ರಚಿಸುತ್ತವೆ.
ಕೆಎಸ್ಯುಐಡಿ ಜನರೇಟರ್
ದಾಖಲೆ
KSUID ಜನರೇಟರ್
ಪರಿಚಯ
KSUID (K-Sortable Unique IDentifier) ಒಂದು ವಿಶಿಷ್ಟ ಗುರುತಿನ ರೂಪವಾಗಿದೆ, ಇದು ಪರಂಪರಾ UUID (Universally Unique Identifier) ಮತ್ತು ಇತರ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳ ಮೇಲೆ ಹಲವಾರು ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುತ್ತದೆ. ಈ ಸಾಧನವು KSUIDಗಳನ್ನು ಶೀಘ್ರವಾಗಿ ಮತ್ತು ಸುಲಭವಾಗಿ ಉತ್ಪಾದಿಸಲು ನಿಮಗೆ ಅನುಮತಿಸುತ್ತದೆ.
KSUID ಎಂದರೇನು?
KSUID ಒಂದು 20-ಬೈಟು ಶ್ರೇಣೀಬದ್ಧ ಗುರುತಾಗಿದೆ, ಇದು ಒಳಗೊಂಡಿದೆ:
- 32-ಬಿಟ್ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ (4 ಬೈಟು)
- 16 ಬೈಟುಗಳ ಯಾದೃಚ್ಛಿಕತೆ
ಒಂದು ಸ್ಟ್ರಿಂಗ್ ಆಗಿ ಪ್ರತಿನಿಧಿಸಿದಾಗ, KSUID ಅನ್ನು ಬೇಸ್62ನಲ್ಲಿ ಎನ್ಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ ಮತ್ತು ಇದು 27 ಅಕ್ಷರಗಳ ಉದ್ದದಲ್ಲಿರುತ್ತದೆ.
KSUID ರಚನೆ
KSUIDನ ರಚನೆಯನ್ನು ಹೀಗಾಗಿ ವಿಭಜಿಸಬಹುದು:
-
ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ (4 ಬೈಟು): ಇದು ಯುನಿಕ್ಸ್ ಎಪೋಚ್ (1970-ಜನವರಿ-01 00:00 UTC) ನಂತರದ ಸೆಕೆಂಡುಗಳ ಸಂಖ್ಯೆಯನ್ನು ಪ್ರತಿನಿಧಿಸುತ್ತದೆ. ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ KSUIDಗಳನ್ನು ಉತ್ಪಾದನೆಯ ಸಮಯದ ಮೂಲಕ ಶ್ರೇಣೀಬದ್ಧಗೊಳಿಸಲು ಅನುಮತಿಸುತ್ತದೆ.
-
ಯಾದೃಚ್ಛಿಕ ಅಂಶ (16 ಬೈಟು): ಇದು ಕ್ರಿಪ್ಟೋಗ್ರಾಫಿಕಲ್ ಸುರಕ್ಷಿತ ಯಾದೃಚ್ಛಿಕ ಸಂಖ್ಯೆಯಾಗಿದೆ, ಇದು ಒಂದೇ ಸೆಕೆಂಡಿನಲ್ಲಿ ಬಹಳಷ್ಟು KSUIDಗಳನ್ನು ಉತ್ಪಾದಿಸುವಾಗ ವಿಶಿಷ್ಟತೆಯನ್ನು ಖಾತರಿಯಿಸುತ್ತದೆ.
-
ಬೇಸ್62 ಎನ್ಕೋಡಿಂಗ್: ಸಮೂಹ 20 ಬೈಟುಗಳು (ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ + ಯಾದೃಚ್ಛಿಕ) ನಂತರ ಬೇಸ್62 (A-Z, a-z, 0-9) ಬಳಸಿ ಎನ್ಕೋಡ್ ಮಾಡಲಾಗುತ್ತದೆ, ಅಂತಿಮ 27-ಅಕ್ಷರದ ಸ್ಟ್ರಿಂಗ್ ಅನ್ನು ಉತ್ಪಾದಿಸುತ್ತದೆ.
KSUID ಸೂತ್ರ
KSUID ಅನ್ನು ಗಣಿತವಾಗಿ ಹೀಗಾಗಿ ಪ್ರತಿನಿಧಿಸಬಹುದು:
ಅಲ್ಲಿ:
- 32-ಬಿಟ್ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್
- 128-ಬಿಟ್ ಯಾದೃಚ್ಛಿಕ ಅಂಶ
- ಸಂಕಲನವನ್ನು ಸೂಚಿಸುತ್ತದೆ
ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ಹೀಗಾಗಿ ಲೆಕ್ಕಹಾಕಲಾಗುತ್ತದೆ:
T = \text{floor}(\text{current_time} - \text{KSUID_epoch})
ಅಲ್ಲಿ KSUID_epoch 1400000000 (2014-ಮೇ-13T16:53:20Z).
KSUID ರಚನೆ ಚಿತ್ರೀಕರಣ
KSUIDಗಳ ಬಳಕೆ ಪ್ರಕರಣಗಳು
KSUIDಗಳು ಕೆಳಗಿನ ದೃಶ್ಯಗಳಲ್ಲಿ ವಿಶೇಷವಾಗಿ ಉಪಯುಕ್ತವಾಗಿವೆ:
-
ವಿತರಣಾ ವ್ಯವಸ್ಥೆಗಳು: ನೀವು ಅನೇಕ ಸರ್ವರ್ಗಳು ಅಥವಾ ಸೇವೆಗಳ ನಡುವಿನ ವಿಶಿಷ್ಟ ಗುರುತಿನ ಅಗತ್ಯವಿದ್ದಾಗ.
-
ಕಾಲ-ಶ್ರೇಣೀಬದ್ಧ ಡೇಟಾ: ನೀವು ಪ್ರತ್ಯೇಕ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಅನ್ನು ಸಂಗ್ರಹಿಸುವ ಅಗತ್ಯವಿಲ್ಲದೆ ನಿರ್ಮಾಣ ಸಮಯದ ಮೂಲಕ ಡೇಟಾವನ್ನು ಶ್ರೇಣೀಬದ್ಧಗೊಳಿಸಲು ಬಯಸಿದಾಗ.
-
ಡೇಟಾಬೇಸ್ ಕೀಗಳು: ಡೇಟಾಬೇಸ್ಗಳಲ್ಲಿ ಪ್ರಾಥಮಿಕ ಕೀಗಳಂತೆ, ವಿಶೇಷವಾಗಿ ವಿತರಣಾ ಡೇಟಾಬೇಸ್ಗಳಲ್ಲಿ ಸ್ವಾಯತ್ತ-ವೃದ್ಧಿಸುವ ಪೂರ್ಣಾಂಕಗಳು ಸೂಕ್ತವಾಗಿಲ್ಲ.
-
URL-ಸುರಕ್ಷಿತ ಗುರುತಿನಗಳು: ವೆಬ್ ಅಪ್ಲಿಕೇಶನ್ಗಳಲ್ಲಿ ಸಂಪತ್ತುಗಳಿಗೆ ಶ್ರೇಣೀಬದ್ಧ, ವಿಶಿಷ್ಟ, URL-ಸುರಕ್ಷಿತ ಗುರುತಿನಗಳನ್ನು ಸೃಷ್ಟಿಸಲು.
-
ಲಾಗ್ ಸಂಬಂಧ: ಮೈಕ್ರೋಸರ್ವೀಸ್ ವಾಸ್ತುಶಿಲ್ಪದಲ್ಲಿ ವಿಭಿನ್ನ ಸೇವೆಗಳಾದ್ಯಂತ ಲಾಗ್ ಎಂಟ್ರಿಗಳನ್ನು ಸಂಬಂಧಿಸಲು.
KSUIDಗಳ ಪ್ರಯೋಜನಗಳು
KSUIDಗಳು ಇತರ ಗುರುತಿನ ವ್ಯವಸ್ಥೆಗಳ ಮೇಲೆ ಹಲವಾರು ಪ್ರಯೋಜನಗಳನ್ನು ಒದಗಿಸುತ್ತವೆ:
-
ಶ್ರೇಣೀಬದ್ಧತೆ: UUIDಗಳ ವಿರುದ್ಧ, KSUIDಗಳು ಕಾಲಕ್ರಮದಲ್ಲಿ ಶ್ರೇಣೀಬದ್ಧಗೊಳಿಸಲಾಗುತ್ತದೆ, ಇದು ಡೇಟಾಬೇಸ್ ಇಂಡೆಕ್ಸಿಂಗ್ ಮತ್ತು ಲಾಗ್ ವಿಶ್ಲೇಷಣೆಗೆ ಉಪಯುಕ್ತವಾಗಿದೆ.
-
ಸಂಯೋಜನೆಯ ಅಗತ್ಯವಿಲ್ಲ: ಸ್ವಾಯತ್ತ-ವೃದ್ಧಿಸುವ ಐಡಿಗಳ ವಿರುದ್ಧ, KSUIDಗಳನ್ನು ವಿಭಿನ್ನ ಸರ್ವರ್ಗಳಿಂದ ಸ್ವಾಯತ್ತವಾಗಿ ಉತ್ಪಾದಿಸಲಾಗುತ್ತದೆ, ಏಕಕಾಲದಲ್ಲಿ ಸಂಘರ್ಷವನ್ನು ಅಪಾಯವಿಲ್ಲ.
-
ಸಂಕೀರ್ಣ ಪ್ರತಿನಿಧಾನ: 27 ಅಕ್ಷರಗಳಲ್ಲಿ KSUIDಗಳು ಸ್ಟ್ರಿಂಗ್ಗಳಂತೆ UUIDಗಳಿಗಿಂತ ಹೆಚ್ಚು ಸಂಕೀರ್ಣವಾಗಿವೆ.
-
ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಅಳವಡಿಸಲಾಗಿದೆ: ಅಳವಡಿಸಲಾದ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಕಾಲಾಧಾರಿತ ಶ್ರೇಣೀಬದ್ಧಗೊಳಿಸಲು ಮತ್ತು ಫಿಲ್ಟರ್ ಮಾಡಲು ಪ್ರತ್ಯೇಕ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್ ಕ್ಷೇತ್ರವನ್ನು ಅಗತ್ಯವಿಲ್ಲ.
-
URL-ಸುರಕ್ಷಿತ: ಬೇಸ್62 ಎನ್ಕೋಡಿಂಗ್ KSUIDಗಳನ್ನು ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಎನ್ಕೋಡಿಂಗ್ ಇಲ್ಲದೆ URLಗಳಲ್ಲಿ ಬಳಸಲು ಸುರಕ್ಷಿತವಾಗಿಸುತ್ತದೆ.
-
ಸಂಘರ್ಷದ ಸಂಭವನೀಯತೆ ಕಡಿಮೆ: 16-ಬೈಟು ಯಾದೃಚ್ಛಿಕ ಅಂಶವು ಸಂಘರ್ಷಗಳನ್ನು ಅತ್ಯಂತ ಅಸಾಧ್ಯವಾಗಿಸುತ್ತದೆ, ಏಕೆಂದರೆ ಉನ್ನತ ಉತ್ಪಾದನಾ ದರದಲ್ಲಿ.
ಈ ಜನರೇಟರ್ ಅನ್ನು ಹೇಗೆ ಬಳಸುವುದು
- ಅಗತ್ಯವಿದ್ದರೆ ಯಾವುದೇ ಹೆಚ್ಚುವರಿ ಪ್ಯಾರಾಮೀಟರ್ಗಳನ್ನು ನಮೂದಿಸಿ (ಉದಾಹರಣೆಗೆ, ಕಸ್ಟಮ್ ಟೈಮ್ಸ್ಟ್ಯಾಂಪ್).
- ಹೊಸ KSUID ಅನ್ನು ರಚಿಸಲು "Generate KSUID" ಬಟನ್ ಕ್ಲಿಕ್ ಮಾಡಿ.
- ಉತ್ಪಾದಿತ KSUID ಔಟ್ಪುಟ್ ಕ್ಷೇತ್ರದಲ್ಲಿ ತೋರಿಸಲಾಗುತ್ತದೆ.
- ನೀವು 1-3 ಹಂತಗಳನ್ನು ಪುನರಾವೃತ್ತ ಮಾಡುವ ಮೂಲಕ ಹಲವಾರು KSUIDಗಳನ್ನು ಉತ್ಪಾದಿಸಬಹುದು.
- ಪ್ರತಿಯೊಂದು KSUIDಗೆ ಹಕ್ಕುಪತ್ರವನ್ನು ಕಾಪಿ ಮಾಡಲು "Copy" ಬಟನ್ ಬಳಸಬಹುದು.
- ಆಯ್ಕೆಗೊಳ್ಳುವುದಾದರೆ, ಉತ್ಪಾದಿತ KSUIDಗಳ ಪಟ್ಟಿಯನ್ನು ಡೌನ್ಲೋಡ್ ಮಾಡಲು "Export" ವೈಶಿಷ್ಟ್ಯವನ್ನು ಬಳಸಬಹುದು.
ಪ್ರತಿಯೊಂದು KSUID ವಿಶಿಷ್ಟವಾಗಿದೆ ಮತ್ತು ಒಂದೇ ಬಾರಿಗೆ ಬಳಸಬೇಕು. ನೀವು ವಿಶಿಷ್ಟ ಗುರುತಿನ ಅಗತ್ಯವಿದ್ದಾಗ ಪ್ರತಿ ಬಾರಿ ಹೊಸ KSUID ಅನ್ನು ಉತ್ಪಾದಿಸಿ.
ಕೋಡ್ ಉದಾಹರಣೆಗಳು
ಇಲ್ಲಿ ವಿವಿಧ ಪ್ರೋಗ್ರಾಮಿಂಗ್ ಭಾಷೆಗಳಲ್ಲಿ KSUIDಗಳನ್ನು ಉತ್ಪಾದಿಸುವ ಉದಾಹರಣೆಗಳಿವೆ:
1## ಪೈಥಾನ್
2import ksuid
3
4new_id = ksuid.ksuid()
5print(f"Generated KSUID: {new_id}")
6
1// ಜಾವಾಸ್ಕ್ರಿಪ್ಟ್
2const { ksuid } = require('ksuid')
3
4const newId = ksuid()
5console.log(`Generated KSUID: ${newId}`)
6
1// ಜಾವಾ
2import com.github.ksuid.KsuidGenerator;
3
4public class KsuidExample {
5 public static void main(String[] args) {
6 String newId = KsuidGenerator.generate();
7 System.out.println("Generated KSUID: " + newId);
8 }
9}
10
1// C++
2#include <iostream>
3#include <ksuid/ksuid.hpp>
4
5int main() {
6 ksuid::Ksuid newId = ksuid::Ksuid::generate();
7 std::cout << "Generated KSUID: " << newId.string() << std::endl;
8 return 0;
9}
10
1## ರೂಬಿ
2require 'ksuid'
3
4new_id = KSUID.new
5puts "Generated KSUID: #{new_id}"
6
1// PHP
2<?php
3require_once 'vendor/autoload.php';
4
5use Tuupola\KsuidFactory;
6
7$factory = new KsuidFactory();
8$newId = $factory->create();
9echo "Generated KSUID: " . $newId . "\n";
10?>
11
1// ಗೋ
2package main
3
4import (
5 "fmt"
6 "github.com/segmentio/ksuid"
7)
8
9func main() {
10 newId := ksuid.New()
11 fmt.Printf("Generated KSUID: %s\n", newId.String())
12}
13
1// ಸ್ವಿಫ್ಟ್
2import KSUID
3
4let newId = KSUID()
5print("Generated KSUID: \(newId)")
6
ಉಲ್ಲೇಖಗಳು
- ಸೆಗ್ಮೆಂಟ್ನ KSUID ಗಿಟ್ಹಬ್ ರೆಪೊಸಿಟರಿ: https://github.com/segmentio/ksuid
- "ಚೆನ್ನಾದ ವಿಶಿಷ್ಟ ಗುರುತಿನಗಳನ್ನು ಉತ್ಪಾದಿಸುವುದು" ಪೀಟರ್ ಬೊರ್ಗೊನ್: https://peter.bourgon.org/blog/2019/05/20/generating-good-unique-ids.html
- KSUID ವಿಶೇಷಣ: https://github.com/segmentio/ksuid/blob/master/README.md
ಪ್ರತಿಕ್ರಿಯೆ
ಈ ಸಾಧನದ ಬಗ್ಗೆ ಪ್ರತಿಕ್ರಿಯೆ ನೀಡಲು ಪ್ರತಿಕ್ರಿಯೆ ಟೋಸ್ಟ್ ಅನ್ನು ಕ್ಲಿಕ್ ಮಾಡಿ
ಸಂಬಂಧಿತ ಸಾಧನಗಳು
ನಿಮ್ಮ ಕಾರ್ಯಪ್ರವೃತ್ತಿಗೆ ಉಪಯುಕ್ತವಾಗಬಹುದಾದ ಇನ್ನಷ್ಟು ಸಾಧನಗಳನ್ನು ಅನ್ವೇಷಿಸಿ