إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
هام
لم يعد Azure Cosmos DB ل PostgreSQL مدعوما للمشاريع الجديدة. لا تستخدم هذه الخدمة لمشاريع جديدة. بدلا من ذلك، استخدم إحدى هاتين الخدمتين:
استخدم Azure Cosmos DB ل NoSQL لحل قاعدة بيانات موزعة مصممة للسيناريوهات عالية النطاق مع اتفاقية مستوى خدمة التوفر% 99.999 ومقياس تلقائي فوري وتجاوز الفشل التلقائي عبر مناطق متعددة.
استخدم ميزة المجموعات المرنة في قاعدة بيانات Azure ل PostgreSQL المجزأة باستخدام ملحق Citus مفتوح المصدر.
يسمح لك ملحق pg_azure_storage بتحميل البيانات بتنسيقات ملفات متعددة مباشرة من تخزين Azure blob إلى Azure Cosmos DB لنظام مجموعة PostgreSQL. يؤدي تمكين الملحق أيضا إلى إلغاء تأمين قدرات جديدة لأمر COPY . تتطلب الحاويات ذات مستوى الوصول "خاص" أو "Blob" إضافة مفتاح وصول خاص.
يمكنك إنشاء الملحق عن طريق تشغيل:
SELECT create_extension('azure_storage');
azure_storage.account_add
تسمح الدالة بإضافة حق الوصول إلى حساب تخزين.
azure_storage.account_add
(account_name_p text
,account_key_p text);
الوسيطات
account_name_p
يحتوي حساب تخزين Azure blob (ABS) على جميع كائنات ABS الخاصة بك: الكائنات الثنائية كبيرة الحجم والملفات وقوائم الانتظار والجداول. يوفر حساب التخزين مساحة اسم فريدة ل ABS يمكن الوصول إليها من أي مكان في العالم عبر HTTPS.
account_key_p
مفاتيح الوصول إلى تخزين Azure blob (ABS) مشابهة لكلمة مرور الجذر لحساب التخزين الخاص بك. كن حذرًا دائمًا لحماية مفاتيح الوصول خاصتك. استخدم Azure Key Vault لإدارة المفاتيح وتدويرها بأمان. يتم تخزين مفتاح الحساب في جدول يمكن الوصول إليه من قبل المستخدم الفائق postgres، azure_storage_admin وجميع الأدوار الممنوحة لأذونات المسؤول هذه. لمعرفة حسابات التخزين الموجودة، استخدم الدالة account_list.
azure_storage.account_remove
تسمح الدالة بإبطال وصول الحساب إلى حساب التخزين.
azure_storage.account_remove
(account_name_p text);
الوسيطات
account_name_p
يحتوي حساب تخزين Azure blob (ABS) على جميع كائنات ABS الخاصة بك: الكائنات الثنائية كبيرة الحجم والملفات وقوائم الانتظار والجداول. يوفر حساب التخزين مساحة اسم فريدة ل ABS يمكن الوصول إليها من أي مكان في العالم عبر HTTPS.
azure_storage.account_user_add
تسمح الدالة بإضافة حق الوصول لدور إلى حساب تخزين.
azure_storage.account_user_add
( account_name_p text
, user_p regrole);
الوسيطات
account_name_p
يحتوي حساب تخزين Azure blob (ABS) على جميع كائنات ABS الخاصة بك: الكائنات الثنائية كبيرة الحجم والملفات وقوائم الانتظار والجداول. يوفر حساب التخزين مساحة اسم فريدة ل ABS يمكن الوصول إليها من أي مكان في العالم عبر HTTPS.
user_p
الدور الذي تم إنشاؤه بواسطة المستخدم مرئي على نظام المجموعة.
إشعار
account_user_add،account_add،account_removeaccount_user_remove تتطلب الوظائف تعيين أذونات لكل عقدة فردية في نظام المجموعة.
azure_storage.account_user_remove
تسمح الدالة بإزالة الوصول لدور إلى حساب تخزين.
azure_storage.account_user_remove
(account_name_p text
,user_p regrole);
الوسيطات
account_name_p
يحتوي حساب تخزين Azure blob (ABS) على جميع كائنات ABS الخاصة بك: الكائنات الثنائية كبيرة الحجم والملفات وقوائم الانتظار والجداول. يوفر حساب التخزين مساحة اسم فريدة ل ABS يمكن الوصول إليها من أي مكان في العالم عبر HTTPS.
user_p
الدور الذي تم إنشاؤه بواسطة المستخدم مرئي على نظام المجموعة.
azure_storage.account_list
تسرد الدالة الحساب والدور الذي لديه حق الوصول إلى تخزين Azure blob.
azure_storage.account_list
(OUT account_name text
,OUT allowed_users regrole[]
)
Returns TABLE;
الوسيطات
account_name
يحتوي حساب تخزين Azure blob (ABS) على جميع كائنات ABS الخاصة بك: الكائنات الثنائية كبيرة الحجم والملفات وقوائم الانتظار والجداول. يوفر حساب التخزين مساحة اسم فريدة ل ABS يمكن الوصول إليها من أي مكان في العالم عبر HTTPS.
allowed_users
يسرد المستخدمين الذين لديهم حق الوصول إلى تخزين Azure blob.
نوع الإرجاع
TABLE
azure_storage.blob_list
تسرد الدالة ملفات الكائنات الثنائية كبيرة الحجم المتوفرة داخل حاوية مستخدم بخصائصها.
azure_storage.blob_list
(account_name text
,container_name text
,prefix text DEFAULT ''::text
,OUT path text
,OUT bytes bigint
,OUT last_modified timestamp with time zone
,OUT etag text
,OUT content_type text
,OUT content_encoding text
,OUT content_hash text
)
Returns SETOF record;
الوسيطات
account_name
storage account name يوفر مساحة اسم فريدة لبيانات تخزين Azure التي يمكن الوصول إليها من أي مكان في العالم عبر HTTPS.
container_name
تنظم الحاوية مجموعة من النقط، على غرار دليل في نظام الملفات. يمكن أن يتضمن حساب التخزين عدداً غير محدود من الحاويات، ويمكن للحاوية تخزين عدد غير محدود من النقاط. يجب أن يكون اسم الحاوية اسم DNS صالحاً، لأنه يشكل جزءاً من عنوان URI الفريد المستخدم لمعالجة الحاوية أو كائناتها الثنائية كبيرة الحجم. اتبع هذه القواعد عند تسمية حاوية:
- يمكن اختيار أسماء الحاويات بحيث يتراوح طولها بين 3 أحرف و63 حرفاً.
- يجب أن تبدأ أسماء الحاويات بحرف أو رقم، ويمكن أن تحتوي فقط على أحرف صغيرة و أرقام وحرف الشرطة (-).
- لا يُسمح باستخدام حرفين متتاليين أو أكثر من أحرف الشرطة في أسماء الحاويات.
URI للحاوية مشابه لما يلي: https://myaccount.blob.core.windows.net/mycontainer
البادئة
إرجاع ملف من حاوية كائن ثنائي كبير الحجم مع مطابقة الأحرف الأولى من السلسلة.
path
المسار المؤهل الكامل لدليل Azure blob.
وحدات البايت
حجم كائن الملف بالبايت.
last_modified
متى تم آخر تعديل لمحتوى الملف.
etag
يتم استخدام خاصية ETag للتزامن المتفائل أثناء التحديثات. إنه ليس طابعا زمنيا حيث توجد خاصية أخرى تسمى الطابع الزمني تخزن آخر مرة تم فيها تحديث سجل. على سبيل المثال، إذا قمت بتحميل كيان وتريد تحديثه، يجب أن يتطابق ETag مع ما يتم تخزينه حاليا. يعد تعيين ETag المناسب مهما لأنه إذا كان لديك عدة مستخدمين يقومون بتحرير العنصر نفسه، فأنت لا تريد منهم الكتابة فوق تغييرات بعضهم البعض.
content_type
يمثل كائن Blob كائن ثنائي كبير الحجم، وهو كائن يشبه الملف للبيانات الأولية غير القابلة للتغيير. يمكن قراءتها كنص أو بيانات ثنائية، أو تحويلها إلى ReadableStream بحيث يمكن استخدام أساليبها لمعالجة البيانات. يمكن أن تمثل الكائنات الثنائية كبيرة الحجم البيانات التي ليست بالضرورة بتنسيق JavaScript أصلي.
content_encoding
يسمح لك Azure Storage بتعريف خاصية ترميز المحتوى على كائن ثنائي كبير الحجم. بالنسبة للمحتوى المضغوط، يمكنك تعيين الخاصية لتكون GZIP. عندما يصل المستعرض إلى المحتوى، فإنه يقوم تلقائيا بإلغاء ضغط المحتوى.
content_hash
يتم استخدام هذه التجزئة للتحقق من سلامة الكائن الثنائي كبير الحجم أثناء النقل. عند تحديد هذا العنوان، تتحقق خدمة التخزين من التجزئة التي وصلت مع تلك التي تم إرسالها. إذا لم تتطابق التجزئتان، تفشل العملية مع رمز الخطأ 400 (طلب غير صحيح).
نوع الإرجاع
سجل SETOF
إشعار
الأذونات الآن يمكنك سرد الحاويات التي تم تعيينها إلى مستويات الوصول الخاصة وBlob لهذا التخزين ولكن فقط ك citus user، الذي لديه azure_storage_admin الدور الممنوح له. إذا قمت بإنشاء مستخدم جديد باسم support، فلن يسمح له بالوصول إلى محتويات الحاوية بشكل افتراضي.
azure_storage.blob_get
تسمح الدالة بتحميل محتوى الملف / الملفات من داخل الحاوية، مع دعم إضافي على تصفية البيانات أو التلاعب بها، قبل الاستيراد.
azure_storage.blob_get
(account_name text
,container_name text
,path text
,decoder text DEFAULT 'auto'::text
,compression text DEFAULT 'auto'::text
,options jsonb DEFAULT NULL::jsonb
)
RETURNS SETOF record;
هناك إصدار محمل تحميلا زائدا من الدالة، يحتوي على معلمة rec التي تسمح لك بتحديد سجل تنسيق الإخراج بشكل ملائم.
azure_storage.blob_get
(account_name text
,container_name text
,path text
,rec anyelement
,decoder text DEFAULT 'auto'::text
,compression text DEFAULT 'auto'::text
,options jsonb DEFAULT NULL::jsonb
)
RETURNS SETOF anyelement;
الوسيطات
الحساب
يوفر حساب التخزين مساحة اسم فريدة لبيانات Azure Storage التي يمكن الوصول إليها من أي مكان في العالم عبر HTTPS.
حاوية
تنظم الحاوية مجموعة من النقط، على غرار دليل في نظام الملفات. يمكن أن يتضمن حساب التخزين عدداً غير محدود من الحاويات، ويمكن للحاوية تخزين عدد غير محدود من النقاط. يجب أن يكون اسم الحاوية اسم DNS صالحاً، لأنه يشكل جزءاً من عنوان URI الفريد المستخدم لمعالجة الحاوية أو كائناتها الثنائية كبيرة الحجم.
path
اسم الكائن الثنائي كبير الحجم الموجود في الحاوية.
تفصيل
تعريف بنية إخراج السجل.
فك
تحديد تنسيق كائن ثنائي كبير الحجم الذي يمكن تعيينه إلى تلقائي (افتراضي) أو أي من القيم التالية
وصف أداة فك التشفير
| التنسيق | الوصف |
|---|---|
| csv | تنسيق القيم المفصولة بفواصل المستخدم بواسطة PostgreSQL COPY |
| tsv | قيم مفصولة بعلامات جدولة، تنسيق PostgreSQL COPY الافتراضي |
| binary | تنسيق Binary PostgreSQL COPY |
| النص | ملف يحتوي على قيمة نصية واحدة (على سبيل المثال، JSON كبير أو XML) |
ضغط
تعريف تنسيق الضغط. الخيارات المتوفرة هي auto، gzip و none. استخدام auto الخيار (افتراضي)، يخمن الضغط استنادا إلى ملحق الملف (.gz == gzip). يفرض الخيار none تجاهل الملحق وعدم محاولة فك التشفير. بينما يفرض gzip استخدام أداة فك ترميز gzip (عندما يكون لديك ملف gzipped بملحق غير قياسي). لا ندعم حاليا أي تنسيقات ضغط أخرى للملحق.
خيارات
لمعالجة الرؤوس المخصصة والفواصل المخصصة وأحرف الإلغاء وما إلى ذلك، options تعمل بطريقة مماثلة للأمر COPY في PostgreSQL، تستخدم المعلمة blob_get الدالة.
نوع الإرجاع
SETOF Record / anyelement
إشعار
هناك أربع دالات مساعدة، تسمى كمعلمة داخل blob_get تساعد في بناء قيم لها. يتم تعيين كل دالة أداة مساعدة لأداة فك التشفير المطابقة لاسمها.
azure_storage.options_csv_get
تعمل الدالة كدالة أداة مساعدة تسمى كمعلمة داخل blob_get، وهو أمر مفيد لفك ترميز محتوى csv.
azure_storage.options_csv_get
(delimiter text DEFAULT NULL::text
,null_string text DEFAULT NULL::text
,header boolean DEFAULT NULL::boolean
,quote text DEFAULT NULL::text
,escape text DEFAULT NULL::text
,force_not_null text[] DEFAULT NULL::text[]
,force_null text[] DEFAULT NULL::text[]
,content_encoding text DEFAULT NULL::text
)
Returns jsonb;
الوسيطات
المحدِّد
يحدد الحرف الذي يفصل الأعمدة داخل كل صف (سطر) من الملف. الإعداد الافتراضي هو حرف علامة جدولة بتنسيق نص، فاصلة بتنسيق CSV. يجب أن يكون حرف واحد بايت.
null_string
تحديد السلسلة التي تمثل قيمة خالية. الإعداد الافتراضي هو \N (شرطة مائلة عكسية-N) بتنسيق نصي، وسلسلة فارغة غير موقوفة بتنسيق CSV. قد تفضل سلسلة فارغة حتى في تنسيق النص للحالات التي لا تريد تمييز القيم الخالية من السلاسل الفارغة.
العنوان
تحديد أن الملف يحتوي على سطر رأس مع أسماء كل عمود في الملف. في الإخراج، يحتوي السطر الأول على أسماء الأعمدة من الجدول.
عرض الأسعار
تحديد حرف الاقتباس الذي سيتم استخدامه عند اقتباس قيمة بيانات. الإعداد الافتراضي هو عرض أسعار مزدوج. يجب أن يكون حرف واحد بايت.
escape
يحدد الحرف الذي يجب أن يظهر قبل حرف بيانات يطابق قيمة QUOTE. الإعداد الافتراضي هو نفس قيمة QUOTE (بحيث يتم مضاعفة حرف الاقتباس إذا ظهر في البيانات). يجب أن يكون حرف واحد بايت.
force_not_null
لا تتطابق مع قيم الأعمدة المحددة مقابل السلسلة الخالية. في الحالة الافتراضية حيث تكون السلسلة الخالية فارغة، فهذا يعني أن القيم الفارغة تتم قراءتها كسلاسل ذات طول صفري بدلا من القيم الخالية، حتى عندما لا يتم اقتباسها.
force_null
مطابقة قيم الأعمدة المحددة مقابل السلسلة الفارغة، حتى إذا تم اقتباسها، وإذا تم العثور على تطابق، فقم بتعيين القيمة إلى NULL. في الحالة الافتراضية حيث تكون السلسلة الفارغة فارغة، فإنها تحول سلسلة فارغة مقتبسة إلى NULL.
content_encoding
تحديد ترميز الملف في encoding_name. إذا تم حذف الخيار، يتم استخدام ترميز العميل الحالي.
نوع الإرجاع
ملف jsonb
azure_storage.options_copy
تعمل الدالة كدالة أداة مساعدة تسمى كمعلمة داخل blob_get.
azure_storage.options_copy
(delimiter text DEFAULT NULL::text
,null_string text DEFAULT NULL::text
,header boolean DEFAULT NULL::boolean
,quote text DEFAULT NULL::text
,escape text DEFAULT NULL::text
,force_quote text[] DEFAULT NULL::text[]
,force_not_null text[] DEFAULT NULL::text[]
,force_null text[] DEFAULT NULL::text[]
,content_encoding text DEFAULT NULL::text
)
Returns jsonb;
الوسيطات
المحدِّد
يحدد الحرف الذي يفصل الأعمدة داخل كل صف (سطر) من الملف. الإعداد الافتراضي هو حرف علامة جدولة بتنسيق نص، فاصلة بتنسيق CSV. يجب أن يكون حرف واحد بايت.
null_string
تحديد السلسلة التي تمثل قيمة خالية. الإعداد الافتراضي هو \N (شرطة مائلة عكسية-N) بتنسيق نصي، وسلسلة فارغة غير موقوفة بتنسيق CSV. قد تفضل سلسلة فارغة حتى في تنسيق النص للحالات التي لا تريد تمييز القيم الخالية من السلاسل الفارغة.
العنوان
تحديد أن الملف يحتوي على سطر رأس مع أسماء كل عمود في الملف. في الإخراج، يحتوي السطر الأول على أسماء الأعمدة من الجدول.
عرض الأسعار
تحديد حرف الاقتباس الذي سيتم استخدامه عند اقتباس قيمة بيانات. الإعداد الافتراضي هو عرض أسعار مزدوج. يجب أن يكون حرف واحد بايت.
escape
يحدد الحرف الذي يجب أن يظهر قبل حرف بيانات يطابق قيمة QUOTE. الإعداد الافتراضي هو نفس قيمة QUOTE (بحيث يتم مضاعفة حرف الاقتباس إذا ظهر في البيانات). يجب أن يكون حرف واحد بايت.
force_quote
يفرض استخدام الاقتباس لكافة القيم غير الفارغة في كل عمود محدد. لا يتم اقتباس إخراج NULL أبدا. إذا تم تحديد *، يتم اقتباس القيم غير الفارغة في كافة الأعمدة.
force_not_null
لا تتطابق مع قيم الأعمدة المحددة مقابل السلسلة الخالية. في الحالة الافتراضية حيث تكون السلسلة الخالية فارغة، فهذا يعني أن القيم الفارغة تتم قراءتها كسلاسل ذات طول صفري بدلا من القيم الخالية، حتى عندما لا يتم اقتباسها.
force_null
مطابقة قيم الأعمدة المحددة مقابل السلسلة الفارغة، حتى إذا تم اقتباسها، وإذا تم العثور على تطابق، فقم بتعيين القيمة إلى NULL. في الحالة الافتراضية حيث تكون السلسلة الفارغة فارغة، فإنها تحول سلسلة فارغة مقتبسة إلى NULL.
content_encoding
تحديد ترميز الملف في encoding_name. إذا تم حذف الخيار، يتم استخدام ترميز العميل الحالي.
نوع الإرجاع
ملف jsonb
azure_storage.options_tsv
تعمل الدالة كدالة أداة مساعدة تسمى كمعلمة داخل blob_get. إنه مفيد لفك ترميز محتوى tsv.
azure_storage.options_tsv
(delimiter text DEFAULT NULL::text
,null_string text DEFAULT NULL::text
,content_encoding text DEFAULT NULL::text
)
Returns jsonb;
الوسيطات
المحدِّد
يحدد الحرف الذي يفصل الأعمدة داخل كل صف (سطر) من الملف. الإعداد الافتراضي هو حرف علامة جدولة بتنسيق نص، فاصلة بتنسيق CSV. يجب أن يكون حرف واحد بايت.
null_string
تحديد السلسلة التي تمثل قيمة خالية. الإعداد الافتراضي هو \N (شرطة مائلة عكسية-N) بتنسيق نصي، وسلسلة فارغة غير موقوفة بتنسيق CSV. قد تفضل سلسلة فارغة حتى في تنسيق النص للحالات التي لا تريد تمييز القيم الخالية من السلاسل الفارغة.
content_encoding
تحديد ترميز الملف في encoding_name. إذا تم حذف الخيار، يتم استخدام ترميز العميل الحالي.
نوع الإرجاع
ملف jsonb
azure_storage.options_binary
تعمل الدالة كدالة أداة مساعدة تسمى كمعلمة داخل blob_get. إنه مفيد لفك ترميز المحتوى الثنائي.
azure_storage.options_binary
(content_encoding text DEFAULT NULL::text)
Returns jsonb;
الوسيطات
content_encoding
تحديد ترميز الملف في encoding_name. إذا تم حذف هذا الخيار، يتم استخدام ترميز العميل الحالي.
نوع الإرجاع
ملف jsonb
إشعار
الأذونات الآن يمكنك سرد الحاويات التي تم تعيينها إلى مستويات الوصول الخاصة وBlob لهذا التخزين ولكن فقط ك citus user، الذي لديه azure_storage_admin الدور الممنوح له. إذا قمت بإنشاء مستخدم جديد يسمى support، فلن يسمح له بالوصول إلى محتويات الحاوية بشكل افتراضي.
الأمثلة
الأمثلة المستخدمة الاستفادة من نموذج حساب (pgquickstart) تخزين Azure مع الملفات المخصصة التي تم تحميلها لإضافتها إلى تغطية حالات الاستخدام المختلفة. يمكننا البدء بإنشاء جدول مستخدم عبر مجموعة الأمثلة المستخدمة.
CREATE TABLE IF NOT EXISTS public.events
(
event_id bigint
,event_type text
,event_public boolean
,repo_id bigint
,payload jsonb
,repo jsonb
,user_id bigint
,org jsonb
,created_at timestamp without time zone
);
إضافة مفتاح الوصول لحساب التخزين (إلزامي لمستوى الوصول = خاص)
يوضح المثال إضافة مفتاح الوصول لحساب التخزين للحصول على حق الوصول للاستعلام من جلسة عمل على Azure Cosmos DB لنظام مجموعة Postgres.
SELECT azure_storage.account_add('pgquickstart', 'SECRET_ACCESS_KEY');
تلميح
في حساب التخزين الخاص بك، افتح مفاتيح Access. انسخ اسم حساب التخزين وانسخ قسم Key from key1 (يجب عليك تحديد Show بجوار المفتاح أولا).
إزالة مفتاح الوصول لحساب التخزين
يوضح المثال إزالة مفتاح الوصول لحساب تخزين. سيؤدي هذا الإجراء إلى إزالة الوصول إلى الملفات المستضافة في مستودع خاص في الحاوية.
SELECT azure_storage.account_remove('pgquickstart');
إضافة حق الوصول لدور إلى تخزين Azure Blob
SELECT * FROM azure_storage.account_user_add('pgquickstart', 'support');
سرد جميع الأدوار التي لها حق الوصول على تخزين Azure Blob
SELECT * FROM azure_storage.account_list();
إزالة الأدوار مع الوصول إلى تخزين Azure Blob
SELECT * FROM azure_storage.account_user_remove('pgquickstart', 'support');
سرد الكائنات داخل public حاوية
SELECT * FROM azure_storage.blob_list('pgquickstart','publiccontainer');
سرد الكائنات داخل private حاوية
SELECT * FROM azure_storage.blob_list('pgquickstart','privatecontainer');
إشعار
تعد إضافة مفتاح الوصول إلزامية.
سرد الكائنات ذات الأحرف الأولى من سلسلة معينة داخل الحاوية العامة
SELECT * FROM azure_storage.blob_list('pgquickstart','publiccontainer','e');
بدلا
SELECT * FROM azure_storage.blob_list('pgquickstart','publiccontainer') WHERE path LIKE 'e%';
قراءة المحتوى من كائن في حاوية
تسترد blob_get الدالة ملفا من تخزين كائن ثنائي كبير الحجم. لكي blob_get معرفة كيفية تحليل البيانات، يمكنك إما تمرير قيمة (NULL::table_name)، والتي لها نفس تنسيق الملف.
SELECT * FROM azure_storage.blob_get
('pgquickstart'
,'publiccontainer'
,'events.csv.gz'
, NULL::events)
LIMIT 5;
بدلا من ذلك، يمكننا تعريف الأعمدة في العبارة FROM بشكل صريح.
SELECT * FROM azure_storage.blob_get('pgquickstart','publiccontainer','events.csv')
AS res (
event_id BIGINT
,event_type TEXT
,event_public BOOLEAN
,repo_id BIGINT
,payload JSONB
,repo JSONB
,user_id BIGINT
,org JSONB
,created_at TIMESTAMP WITHOUT TIME ZONE)
LIMIT 5;
استخدام خيار أداة فك التشفير
يوضح المثال استخدام decoder الخيار . عادة ما يتم استنتاج التنسيق من ملحق الملف، ولكن عندما لا يحتوي محتوى الملف على ملحق مطابق، يمكنك تمرير وسيطة أداة فك الترميز.
SELECT * FROM azure_storage.blob_get
('pgquickstart'
,'publiccontainer'
,'events'
, NULL::events
, decoder := 'csv')
LIMIT 5;
استخدام الضغط مع خيار أداة فك التشفير
يوضح المثال كيفية فرض استخدام ضغط gzip على ملف مضغوط gzip دون ملحق .gz قياسي.
SELECT * FROM azure_storage.blob_get
('pgquickstart'
,'publiccontainer'
,'events-compressed'
, NULL::events
, decoder := 'csv'
, compression := 'gzip')
LIMIT 5;
استيراد المحتوى الذي تمت تصفيته وتعديله قبل التحميل من كائن تنسيق csv
يوضح المثال إمكانية تصفية وتعديل المحتوى الذي يتم استيراده من الكائن في الحاوية قبل تحميله في جدول SQL.
SELECT concat('P-',event_id::text) FROM azure_storage.blob_get
('pgquickstart'
,'publiccontainer'
,'events.csv'
, NULL::events)
WHERE event_type='PushEvent'
LIMIT 5;
الاستعلام عن المحتوى من الملف باستخدام الرؤوس والفواصل المخصصة وأحرف الإلغاء
يمكنك استخدام فواصل مخصصة وأحرف إلغاء عن طريق تمرير نتيجة azure_storage.options_copy إلى الوسيطة options .
SELECT * FROM azure_storage.blob_get
('pgquickstart'
,'publiccontainer'
,'events_pipe.csv'
,NULL::events
,options := azure_storage.options_csv_get(delimiter := '|' , header := 'true')
);
استعلام التجميع على محتوى كائن في الحاوية
بهذه الطريقة يمكنك الاستعلام عن البيانات دون استيرادها.
SELECT event_type,COUNT(1) FROM azure_storage.blob_get
('pgquickstart'
,'publiccontainer'
,'events.csv'
, NULL::events)
GROUP BY event_type
ORDER BY 2 DESC
LIMIT 5;