การส่งออกข้อมูล
การแนะนำการส่งออกข้อมูล¶
นี่คือบริการที่ดึงข้อมูลบันทึกจาก Hive Analytics ทุกชั่วโมงและโอนย้ายไปยังพื้นที่จัดเก็บบนคลาวด์
ข้อมูลที่ผลิตโดยการส่งออกข้อมูลสามารถนำไปใช้ในการวิเคราะห์ได้ตามต้องการ ไม่ว่าจะโดยการสร้างฐานข้อมูลโดยตรงเป็นข้อมูลดิบหรือโดยการประมวลผลให้เป็นรูปแบบที่จำเป็น
Hive Analytics มีบริการแปลงไฟล์และการถ่ายโอนข้อมูล อย่างไรก็ตาม การจัดเก็บข้อมูลในคลาวด์ต้องการการลงทะเบียนกับผู้ให้บริการคลาวด์ที่คุณกำลังใช้
หลักการส่งออกข้อมูล¶
ทุกชั่วโมง ตาราง BigQuery จะถูกแปลงเป็นไฟล์ตามรอบการส่งออกข้อมูลและอัปโหลดไปยังพื้นที่จัดเก็บคลาวด์ที่ลงทะเบียน
สิทธิ์ในการส่งออกข้อมูล¶
- ในการใช้ฟังก์ชันการส่งออกข้อมูล คุณต้องเข้าถึงเกมทั้งหมดหรือมีบัญชี Hive
- เนื่องจากข้อมูลถูกส่งมอบโดยตาราง (log) การส่งข้อมูลแยกตามเกมจึงเป็นไปไม่ได้
เกณฑ์ข้อมูลการส่งออกข้อมูล¶
- ค้นหาข้อมูลในตารางที่เลือกและอัปโหลดไฟล์ไปยังพื้นที่เก็บข้อมูลบนคลาวด์。
- ข้อมูลจะถูกดึงออกโดยใช้รอบการส่งข้อมูลตามชั่วโมงตาม UTC。 ตัวอย่าง) ดึงข้อมูลวันที่ 1 ก.ย. 2023 เวลา 00:00:00 - 00:59:59 (UTC) ในวันที่ 1 ก.ย. 2023 เวลา 1:00 (UTC)。
- มาตรฐานการแบ่งพาร์ติชันสำหรับคอลัมน์วันที่และเวลาจะถูกตั้งค่าเป็นวันที่ดูลบหนึ่งวัน。 ตัวอย่าง) 30 ส.ค. 2023 เวลา 00:00:00 เมื่อดึงข้อมูลจากวันที่ 1 ก.ย. 2023 เวลา 00:00:00 ถึง 00:59:59 (UTC)。
- หากค่าของวันที่และเวลาน้อยกว่าช่วงเวลาที่สอบถามลบหนึ่งวัน จะถูกยกเว้นจากข้อมูลที่ส่งออก。
- มาตรฐานการแบ่งพาร์ติชันสำหรับคอลัมน์วันที่และเวลาจะถูกตั้งค่าเป็นวันที่ดูลบหนึ่งวัน。 ตัวอย่าง) 30 ส.ค. 2023 เวลา 00:00:00 เมื่อดึงข้อมูลจากวันที่ 1 ก.ย. 2023 เวลา 00:00:00 ถึง 00:59:59 (UTC)。
- ข้อมูลจะถูกค้นหาตามเวลาที่ป้อนเข้าสู่ Big Query。
- เกณฑ์คอลัมน์ bigqueryRegistTimestamp
- ตัวอย่างคำสั่งดึงข้อมูล
SELECT *
FROM bigquery_table
WHERE bigqueryRegistTimestamp BETWEEN '2023-09-01 00:00:00' and '2023-09-01 00:59:59'
and datetime >= '2023-08-31 00:00:00'
การตั้งค่าการส่งออกข้อมูล¶
เลือกบันทึก¶
- เลือกตาราง (ล็อก) เพื่อดึงข้อมูล
เลือกที่จัดเก็บ¶
- คุณต้องใช้การจัดเก็บข้อมูลบนคลาวด์เพื่อเก็บข้อมูลของคุณ
- คลาวด์ที่รองรับ
- AWS S3
- GCP Google Cloud Storage
สถานที่ (ชื่อถัง)¶
- กรุณาใส่ชื่อบัคเก็ตของพื้นที่จัดเก็บข้อมูล
- เช่น)
- ถ้าชื่อบัคเก็ต AWS S3 คือ s3://s3_bucket_name,
- ให้ใส่เพียง 's3_bucket_name' เท่านั้น
- ถ้าชื่อบัคเก็ต Google Cloud Storage คือ gs://google_bucket_name,
- ให้ใส่เพียง 'google_bucket_name' เท่านั้น
- ถ้าชื่อบัคเก็ต AWS S3 คือ s3://s3_bucket_name,
ประเภทข้อมูล¶
- มีประเภทข้อมูลสองประเภท
- ประเภทข้อมูลที่ให้มา
- CSV
- JSON
- ไฟล์ทั้งหมดถูกเข้ารหัสใน UTF-8
วงจรการอัปโหลดไฟล์¶
- ข้อมูลจากช่วงเวลาทุกชั่วโมงจะถูกดึงและอัปโหลดทุกชั่วโมง
- เวลาจะอิงจากค่าของคอลัมน์ bigqueryRegistTimestamp สำหรับการดึงข้อมูล (ตาม UTC)
- เช่น) เริ่มดึงและอัปโหลดข้อมูลที่ 15:00 (UTC)
- คอลัมน์ bigqueryRegistTimestamp มีข้อมูลตั้งแต่ 05:00:00 ถึง 05:59:59
- เวลาที่ใช้ในการทำงานอาจแตกต่างกันไปตามจำนวนไฟล์และขนาดของการอัปโหลด
- เช่น) เริ่มดึงและอัปโหลดข้อมูลที่ 15:00 (UTC)
ลงทะเบียนคีย์การตรวจสอบสิทธิ์¶
- จำเป็นต้องมีการอนุญาตในการอัปโหลดข้อมูลไปยังพื้นที่จัดเก็บข้อมูลบนคลาวด์
- คุณต้องลงทะเบียนคีย์การตรวจสอบสิทธิ์หรือไฟล์คีย์การตรวจสอบสิทธิ์ที่มีสิทธิ์ในการจัดเก็บข้อมูล
- เทคนิคการลงทะเบียนคีย์การตรวจสอบสิทธิ์จะแตกต่างกันไปตามบริการคลาวด์
การจัดเก็บข้อมูลบนคลาวด์¶
GCP - Google cloud storage¶
- ในการส่งออกข้อมูลไปยัง Google Cloud จะต้องมีการกำหนดค่าดังต่อไปนี้
-
- ไปที่หน้า Google Cloud Console และเลือก Cloud Storage.
- สร้างบัคเก็ตเฉพาะสำหรับการส่งออกข้อมูล.
- เมื่อกำหนดแล้ว ชื่อบัคเก็ตไม่สามารถเปลี่ยนแปลงได้ หากจำเป็นให้ลบบัคเก็ตเก่าและสร้างบัคเก็ตใหม่
- แนะนำให้สร้างบัคเก็ตที่ใช้สำหรับการส่งออกข้อมูลโดยเฉพาะ
- เพื่อเปิดใช้งานการส่งออกข้อมูล ให้สร้างคีย์บริการและมอบสิทธิ์การเขียนให้กับบัคเก็ต
- เลือก IAM & Admin → บัญชีบริการจากหน้า Console
- ในการตั้งค่าบัญชีใหม่ ให้คลิก สร้างบัญชีบริการ.
- คุณสามารถให้บัญชีของคุณมี ID ที่ตรงกับชื่อที่ต้องการ
- เช่น) hive_data_transfer_account@projectId.iam.gserviceaccount.com
- หลังจากสร้างบัญชีแล้ว ให้ไปที่แท็บ Keys และสร้างคีย์สำหรับบริการ
- สร้างไฟล์คีย์ในรูปแบบ JSON จาก Add Key → Create New Key.
- หลังจากดาวน์โหลดไฟล์คีย์ที่สร้างขึ้น ให้เก็บรักษาอย่างปลอดภัย
- คุณสามารถให้บัญชีของคุณมี ID ที่ตรงกับชื่อที่ต้องการ
- ถัดไป กลับไปที่ Cloud Storage และไปที่แท็บ Permissions ใน บัคเก็ต ที่คุณสร้าง
- ในแท็บ Permissions ให้ป้อน ID ของบัญชีบริการที่สร้างขึ้นใหม่ใน Grant Access → Add Main Member.
- ในการมอบบทบาท ให้ตรวจสอบสิทธิ์สองรายการ: Cloud Storage → ผู้สร้างวัตถุจัดเก็บ และ ผู้ดูวัตถุจัดเก็บ จากนั้นคลิก OK.
- เมื่อคุณตั้งค่าทั้งหมดเสร็จแล้ว ให้ไปที่หน้าการตั้งค่าการส่งออกข้อมูลของ Hive Analytics และลงทะเบียนไฟล์คีย์ของบริการ
AWS - S3¶
- ในการส่งออกข้อมูลไปยัง AWS จำเป็นต้องมีการกำหนดค่าดังต่อไปนี้
-
- ไปที่ Storage → S3 ใน AWS console
- สร้าง bucket สำหรับการส่งออกข้อมูล
- เมื่อกำหนดชื่อแล้ว ชื่อ bucket จะไม่สามารถแก้ไขได้ หากจำเป็นให้ลบ bucket เก่าและสร้างใหม่
- แนะนำให้สร้าง bucket ที่ใช้เฉพาะสำหรับการส่งออกข้อมูล
- สร้าง bucket สำหรับการส่งออกข้อมูล
- ผู้ใช้รายนี้ควรใช้เป็นบัญชีแยกต่างหากสำหรับการส่งออกข้อมูล สร้าง IAM user ใหม่
- สร้าง access key สำหรับบัญชีที่คุณได้สร้าง ข้อมูลที่เกี่ยวข้องสามารถดูได้ที่ IAM user's Manage Access Key - Create Access Key.
- เก็บ access keys ของคุณไว้ในสถานที่ที่ปลอดภัย
- เพิ่ม inline policy สำหรับบัญชีที่สร้างขึ้น
- ในการรวม inline policy สำหรับกลุ่มผู้ใช้ (console) ให้ทำตามขั้นตอนในหัวข้อการสร้างนโยบาย
-
ในการสร้างนโยบาย ให้เลือกแท็บ JSON และวางโค้ด JSON ที่แสดงด้านล่าง
- ฟิลด์ YOUR-BUCKET-NAME-HERE รวมถึงชื่อของบัคเก็ตที่คุณสร้างขึ้น
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetBucketLocation", "s3:ListBucket"], "Resource": ["arn:aws:s3:::YOUR-BUCKET-NAME-HERE"] }, { "Effect": "Allow", "Action": ["s3:PutObject"], "Resource": ["arn:aws:s3:::YOUR-BUCKET-NAME-HERE/*"] } ] }
- ฟิลด์ YOUR-BUCKET-NAME-HERE รวมถึงชื่อของบัคเก็ตที่คุณสร้างขึ้น
- เมื่อคุณทำทุกอย่างเสร็จแล้ว ให้เพิ่มคีย์การเข้าถึงที่เก็บไว้ไปยังตัวเลือกการส่งออกข้อมูลของ Hive console.
รูปแบบการจัดเก็บไฟล์¶
โครงสร้างไดเรกทอรีการจัดเก็บข้อมูล¶
- รูปแบบไฟล์ทั่วไป
- withhive/data_export/Build_Type/YYYY/MM/DD/TableName/TableName_YYYY_MM_DD_UUID.fileExtension
- ประเภทการสร้าง: มีค่าที่เป็นไปได้สองค่า: sandbox และ live เมื่อตั้งค่าเป็น sandbox จะบันทึกเป็น sandbox.
- YYYY/MM/DD : นี่คือปี/เดือน/วันที่มาตรฐานที่ข้อมูลถูกดึงออกมา (ตาม UTC)
- UUID : นี่คือค่าที่สุ่มซึ่งป้องกันการเขียนทับเนื่องจากชื่อไฟล์ซ้ำกัน.
-
นามสกุลไฟล์: แตกต่างกันไปตามประเภทไฟล์ที่เลือก.
- withhive/data_export/Build_Type/YYYY/MM/DD/TableName/TableName_YYYY_MM_DD_UUID.fileExtension
ประเภทไฟล์ | สถานะการบีบอัด | ชื่อไฟล์สุดท้าย |
---|---|---|
json | V | withhive/data_export/BuildType/YYYY/MM/DD/TableName/TableName_YYYY_MM_DD_UUID.json.gzip |
csv | V | withhive/data_export/BuildType/YYYY/MM/DD/TableName/TableName_YYYY_MM_DD_UUID.csv.gzip |
นามสกุลไฟล์¶
- csv.gzip
- นี่คือไฟล์ที่มีข้อมูลที่มีฟิลด์แยกด้วยเครื่องหมายจุลภาค.
- การตั้งค่าการเข้ารหัสไม่สามารถใช้ได้เมื่อบีบอัดไฟล์. (ไม่รองรับ)
- json.gzip
- นี่คือไฟล์ที่มีตัวอักษรข้อมูลที่จัดระเบียบในไวยากรณ์วัตถุของ Javascript.
- มันถูกแยกเป็นบรรทัด.
- นี่คือไฟล์ json ที่ถูกบีบอัดด้วย gzip.
- การตั้งค่าการเข้ารหัสไม่สามารถใช้ได้เมื่อบีบอัดไฟล์. (ไม่รองรับ)
การแจ้งเตือนขีดจำกัดการส่ง¶
- ขีดจำกัดจำนวนโต๊ะสูงสุด
- โต๊ะที่เลือกได้สูงสุด: 10
- ขีดจำกัดความจุข้อมูลที่ดึงข้อมูลตามโต๊ะ
- เกิน 500Mbytes เมื่อดึงข้อมูล: ไม่รวมในการส่งข้อมูล
- ข้อมูลที่ถูกส่งจริงเป็นไฟล์ที่บีบอัดประมาณ 15%.
- เกิน 500Mbytes เมื่อดึงข้อมูล: ไม่รวมในการส่งข้อมูล