بدء SQL Client CLI في وضع البوابة
إشعار
سنتقاعد Azure HDInsight على AKS في 31 يناير 2025. قبل 31 يناير 2025، ستحتاج إلى ترحيل أحمال العمل الخاصة بك إلى Microsoft Fabric أو منتج Azure مكافئ لتجنب الإنهاء المفاجئ لأحمال العمل الخاصة بك. سيتم إيقاف المجموعات المتبقية على اشتراكك وإزالتها من المضيف.
سيتوفر الدعم الأساسي فقط حتى تاريخ الإيقاف.
هام
هذه الميزة في وضع المعاينة حاليًا. تتضمن شروط الاستخدام التكميلية لمعاينات Microsoft Azure المزيد من الشروط القانونية التي تنطبق على ميزات Azure الموجودة في الإصدار التجريبي أو قيد المعاينة أو التي لم يتم إصدارها بعد في التوفر العام. للحصول على معلومات حول هذه المعاينة المحددة، راجع معلومات معاينة Azure HDInsight على AKS. للأسئلة أو اقتراحات الميزات، يرجى إرسال طلب على AskHDInsight مع التفاصيل ومتابعتنا لمزيد من التحديثات على مجتمع Azure HDInsight.
يرشدك هذا البرنامج التعليمي إلى كيفية بدء تشغيل SQL Client CLI في وضع البوابة في Apache Flink Cluster 1.17.0 على HDInsight على AKS. في وضع البوابة، يرسل CLI SQL إلى البوابة البعيدة المحددة لتنفيذ العبارات.
./bin/sql-client.sh gateway --endpoint <gateway address>
إشعار
في Apache Flink Cluster على HDInsight على AKS، سيتم نقل أي اتصال خارجي عبر منفذ 443. ولكن داخليا، سيعيد توجيه الطلب إلى خدمة sql-gateway التي تستمع إلى المنفذ 8083.
تحقق من خدمة بوابة sql في جانب AKS:
ما هو SQL Client في Flink؟
تتيح واجهة برمجة تطبيقات جدول وSQL في Flink إمكانية العمل مع الاستعلامات المكتوبة بلغة SQL، ولكن هذه الاستعلامات تحتاج إلى تضمينها ضمن برنامج جدول مكتوب إما بلغة Java أو Scala. علاوة على ذلك، يجب حزم هذه البرامج باستخدام أداة بناء قبل إرسالها إلى نظام مجموعة. تحد هذه الميزة من استخدام Flink إلى مبرمجي Java/Scala.
يهدف عميل SQL إلى توفير طريقة سهلة للكتابة وتصحيح الأخطاء وإرسال برامج الجدول إلى مجموعة Flink دون سطر واحد من التعليمات البرمجية Java أو Scala. يسمح SQL Client CLI باسترداد النتائج وتصورها في الوقت الفعلي من التطبيق الموزع قيد التشغيل على سطر الأوامر.
لمزيد من المعلومات، راجع كيفية إدخال عميل Flink SQL CLI على webssh.
ما هي بوابة SQL في Flink
بوابة SQL هي خدمة تمكن عملاء متعددين من جهاز التحكم عن بعد من تنفيذ SQL في التزامن. يوفر طريقة سهلة لإرسال وظيفة Flink والبحث عن بيانات التعريف وتحليل البيانات عبر الإنترنت.
لمزيد من المعلومات، راجع بوابة SQL.
بدء SQL Client CLI في وضع البوابة في Flink-cli
في Apache Flink Cluster على HDInsight على AKS، ابدأ SQL Client CLI في وضع البوابة عن طريق تشغيل الأمر:
./bin/sql-client.sh gateway --endpoint host:port
or
./bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
احصل على نقطة نهاية نظام المجموعة (المضيف أو fqdn) على مدخل Microsoft Azure.
الاختبار
الإعداد
تنزيل Flink CLI
- قم بتنزيل Flink CLI من https://aka.ms/hdionaksflink117clilinux جهاز Windows المحلي.
قم بتثبيت نظام Windows الفرعي لـ Linux لجعل هذا يعمل على جهاز Windows المحلي.
افتح أمر Windows وقم بتشغيل (استبدل مسار JAVA_HOME وflink-cli بمسارك الخاص) لتنزيل flink-cli:
Windows Subsystem for Linux --distribution Ubuntu export JAVA_HOME=/mnt/c/Work/99_tools/zulu11.56.19-ca-jdk11.0.15-linux_x64 cd <folder> wget https://hdiconfigactions.blob.core.windows.net/hiloflink17blob/flink-cli.tgz tar -xvf flink-cli.tgz
تعيين نقطة النهاية ومعرف المستأجر والمنفذ 443 في flink-conf.yaml
user@MININT-481C9TJ:/mnt/c/Users/user/flink-cli$ cd conf user@MININT-481C9TJ:/mnt/c/Users/user/flink-cli/conf$ ls -l total 8 -rwxrwxrwx 1 user user 2451 Feb 26 20:33 flink-conf.yaml -rwxrwxrwx 1 user user 2946 Feb 23 14:13 log4j-cli.properties user@MININT-481C9TJ:/mnt/c/Users/user/flink-cli/conf$ cat flink-conf.yaml rest.address: <flink cluster endpoint on Azure portal> azure.tenant.id: <tenant ID> rest.port: 443
Allowlist Local Windows public IP مع المنفذ 443 مع تمكين VPN في HDInsight على أمان الشبكة الفرعية لمجموعة AKS الواردة.
قم بتشغيل sql-client.sh في وضع البوابة على Flink-cli إلى Flink SQL.
bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway
مثال
user@MININT-481C9TJ:/mnt/c/Users/user/flink-cli$ bin/sql-client.sh gateway --endpoint https://fqdn/sql-gateway ▒▓██▓██▒ ▓████▒▒█▓▒▓███▓▒ ▓███▓░░ ▒▒▒▓██▒ ▒ ░██▒ ▒▒▓▓█▓▓▒░ ▒████ ██▒ ░▒▓███▒ ▒█▒█▒ ░▓█ ███ ▓░▒██ ▓█ ▒▒▒▒▒▓██▓░▒░▓▓█ █░ █ ▒▒░ ███▓▓█ ▒█▒▒▒ ████░ ▒▓█▓ ██▒▒▒ ▓███▒ ░▒█▓▓██ ▓█▒ ▓█▒▓██▓ ░█░ ▓░▒▓████▒ ██ ▒█ █▓░▒█▒░▒█▒ ███▓░██▓ ▓█ █ █▓ ▒▓█▓▓█▒ ░██▓ ░█░ █ █▒ ▒█████▓▒ ██▓░▒ ███░ ░ █░ ▓ ░█ █████▒░░ ░█░▓ ▓░ ██▓█ ▒▒▓▒ ▓███████▓░ ▒█▒ ▒▓ ▓██▓ ▒██▓ ▓█ █▓█ ░▒█████▓▓▒░ ██▒▒ █ ▒ ▓█▒ ▓█▓ ▓█ ██▓ ░▓▓▓▓▓▓▓▒ ▒██▓ ░█▒ ▓█ █ ▓███▓▒░ ░▓▓▓███▓ ░▒░ ▓█ ██▓ ██▒ ░▒▓▓███▓▓▓▓▓██████▓▒ ▓███ █ ▓███▒ ███ ░▓▓▒░░ ░▓████▓░ ░▒▓▒ █▓ █▓▒▒▓▓██ ░▒▒░░░▒▒▒▒▓██▓░ █▓ ██ ▓░▒█ ▓▓▓▓▒░░ ▒█▓ ▒▓▓██▓ ▓▒ ▒▒▓ ▓█▓ ▓▒█ █▓░ ░▒▓▓██▒ ░▓█▒ ▒▒▒░▒▒▓█████▒ ██░ ▓█▒█▒ ▒▓▓▒ ▓█ █░ ░░░░ ░█▒ ▓█ ▒█▓ ░ █░ ▒█ █▓ █▓ ██ █░ ▓▓ ▒█▓▓▓▒█░ █▓ ░▓██░ ▓▒ ▓█▓▒░░░▒▓█░ ▒█ ██ ▓█▓░ ▒ ░▒█▒██▒ ▓▓ ▓█▒ ▒█▓▒░ ▒▒ █▒█▓▒▒░░▒██ ░██▒ ▒▓▓▒ ▓██▓▒█▒ ░▓▓▓▓▒█▓ ░▓██▒ ▓░ ▒█▓█ ░░▒▒▒ ▒▓▓▓▓▓▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒░░▓▓ ▓░▒█░ ______ _ _ _ _____ ____ _ _____ _ _ _ BETA | ____| (_) | | / ____|/ __ \| | / ____| (_) | | | |__ | |_ _ __ | | __ | (___ | | | | | | | | |_ ___ _ __ | |_ | __| | | | '_ \| |/ / \___ \| | | | | | | | | |/ _ \ '_ \| __| | | | | | | | | < ____) | |__| | |____ | |____| | | __/ | | | |_ |_| |_|_|_| |_|_|\_\ |_____/ \___\_\______| \_____|_|_|\___|_| |_|\__| Welcome! Enter 'HELP;' to list all available commands. 'QUIT;' to exit. Command history file path: /home/user/.flink-sql-history
قبل الاستعلام عن أي جدول بمصدر خارجي، قم بإعداد الجرار ذات الصلة. فيما يلي أمثلة استعلام جدول kafka، جدول mysql في Flink SQL. قم بتنزيل jar وضعه في مجموعة Flink المرفقة بمخزن Azure Data Lake Storage gen2.
Jars في Azure Data Lake Storage gen2 في مدخل Microsoft Azure:
استخدم الجدول الذي تم إنشاؤه بالفعل وضعه في Hive metastore للإدارة، ثم قم بتشغيل الاستعلام.
إشعار
في هذا المثال، جميع الجرار في HDInsight على AKS الافتراضي Azure Data Lake Storage Gen2. لا يجب أن يكون حساب الحاوية والتخزين كما هو محدد أثناء إنشاء نظام المجموعة. إذا لزم الأمر، يمكنك تحديد حساب تخزين آخر، ومنح هوية مدارة من قبل مستخدم نظام المجموعة دور مالك بيانات كائن ثنائي كبير الحجم للتخزين على جانب Azure Data Lake Storage Gen2.
CREATE CATALOG myhive WITH ( 'type' = 'hive' ); USE CATALOG myhive; // ADD jar into environment ADD JAR 'abfs://<container>@<storage name>.dfs.core.windows.net/jar/flink-connector-jdbc-3.1.0-1.17.jar'; ADD JAR 'abfs://<container>@<storage name>.dfs.core.windows.net/jar/mysql-connector-j-8.0.33.jar'; ADD JAR 'abfs://<container>@<storage name>.dfs.core.windows.net/jar/kafka-clients-3.2.0.jar'; ADD JAR 'abfs://<container>@<storage name>.dfs.core.windows.net/jar/flink-connector-kafka-1.17.0.jar'; Flink SQL> show jars; ----------------------------------------------------------------------------------------------+ | jars | +----------------------------------------------------------------------------------------------+ | abfs://<container>@<storage name>.dfs.core.windows.net/jar/flink-connector-kafka-1.17.0.jar | | abfs://<container>@<storage name>.dfs.core.windows.net/jar/flink-connector-jdbc-3.1.0-1.17.jar | | abfs://<container>@<storage name>.dfs.core.windows.net/jar/kafka-clients-3.2.0.jar | | abfs://<container>@<storage name>.dfs.core.windows.net/jar/mysql-connector-j-8.0.33.jar | +----------------------------------------------------------------------------------------------+ 4 rows in set Flink SQL> SET 'sql-client.execution.result-mode' = 'tableau'; [INFO] Execute statement succeed. Flink SQL> show tables; +----------------------+ | table name | +----------------------+ | flightsintervaldata1 | | kafka_user_orders | | kafkatable | | mysql_user_orders | | orders | +----------------------+ 5 rows in set // mysql cdc table Flink SQL> select * from mysql_user_orders; +----+-------------+----------------------------+-------------+--------------------------------+--------------+-------------+--------------+ | op | order_id | order_date | customer_id | customer_name | price | product_id | order_status | +----+-------------+----------------------------+-------------+--------------------------------+--------------+-------------+--------------+ | +I | 10001 | 2023-07-16 10:08:22.000000 | 1 | Jark | 50.00000 | 102 | FALSE | | +I | 10002 | 2023-07-16 10:11:09.000000 | 2 | Sally | 15.00000 | 105 | FALSE | | +I | 10003 | 2023-07-16 10:11:09.000000 | 3 | Sally | 25.00000 |
المرجع
واجهة سطر أوامر Apache Flink® (CLI) على HDInsight على مجموعات AKS