Initial SQL را در Tableau اجرا کنید
توجه: Tableau Prep Builder نسخه 2019.2.2 و نسخه های جدیدتر از SQL اولیه پشتیبانی می کند، اما هنوز از همه گزینه های مشابه پشتیبانی شده توسط Tableau Desktop پشتیبانی نمی کند.
هنگام اتصال به برخی از پایگاههای داده، میتوانید یک دستور SQL اولیه را مشخص کنید که هنگام برقراری اتصال به پایگاه داده اجرا میشود یا از یک مقدار کش استفاده میکند، به عنوان مثال، هنگام باز کردن کتاب کار، بازخوانی یک استخراج، ورود به Tableau Server یا در سرور Tableau منتشر کنید.
توجه: SQL اولیه با اتصال SQL سفارشی متفاوت است. یک اتصال SQL سفارشی یک رابطه (یا جدول) را برای صدور پرسوجوها تعریف میکند.
می توانید از این دستور برای موارد زیر استفاده کنید:
- جداول موقتی را برای استفاده در طول جلسه تنظیم کنید.
- یک محیط داده سفارشی تنظیم کنید.
شما می توانید یک دستور SQL اولیه را در کادر محاوره ای اتصال سرور یا در صفحه منبع داده اضافه کنید.
توجه: اگر منبع داده شما از اجرای دستور SQL اولیه پشتیبانی می کند، پیوند Initial SQL در گوشه سمت چپ پایین کادر محاوره ای اتصال سرور ظاهر می شود.
برای استفاده از SQL اولیه
- در کادر محاوره ای اتصال سرور، روی Initial SQL کلیک کنید. یا در صفحه منبع داده، Data > Initial SQL یا Data > Query Banding و Initial SQL را بسته به پایگاه داده ای که به آن متصل می شوید، انتخاب کنید.
- دستور SQL را در کادر محاوره ای Initial SQL وارد کنید. می توانید از منوی کشویی Insert برای ارسال پارامترها به منبع داده خود استفاده کنید.
توجه: Tableau عبارت را از نظر خطا بررسی نمی کند. این دستور SQL هنگام اتصال به پایگاه داده ارسال می شود.
مجوز نرم افزار شما ممکن است شما را از استفاده از SQL اولیه با اتصال خود محدود کند. اگر در Tableau Server منتشر می کنید، سرور باید به گونه ای پیکربندی شود که دستورات اولیه SQL را مجاز کند. بهطور پیشفرض، نرمافزار سرور به گونهای پیکربندی شده است که به این عبارات اجازه میدهد زمانی که کتاب کار در یک مرورگر وب بارگذاری میشود، اجرا شوند.
مدیران می توانند با استفاده از دستور tsm configuration set سرور را طوری پیکربندی کنند که عبارات اولیه SQL را نادیده بگیرد:
tsm configuration set -k vizqlserver.initialsql.disabled -v true
اگر سرور دستورات اولیه SQL را اجازه ندهد، کتاب کار باز می شود، اما دستورات اولیه SQL ارسال نمی شوند.
پارامترها در یک دستور SQL اولیه
شما می توانید پارامترها را در یک دستور SQL اولیه به منبع داده خود منتقل کنید. لیست زیر چندین مزیت از استفاده از پارامترها در دستور SQL اولیه دارد.
- می توانید impersonation را با استفاده از پارامترهای TableauServerUser یا TableauServerUserFull پیکربندی کنید.
- اگر منبع داده شما از آن پشتیبانی میکند، میتوانید امنیت در سطح ردیف (به عنوان مثال، برای Oracle VPD یا SAP Sybase ASE) را تنظیم کنید تا مطمئن شوید که کاربران فقط دادههایی را میبینند که مجاز به دیدن آنها هستند.
- می توانید جزئیات بیشتری را در لاگ ارائه دهید، به عنوان مثال، نسخه Tableau یا نام کتاب کار.
پارامترهای زیر در دستور SQL اولیه پشتیبانی می شوند:
پارامتر | توضیحات | نمونه ای از ارزش برگشتی |
TableauServerUser | نام کاربری کاربر فعلی سرور. هنگام تنظیم impersonation در سرور استفاده کنید. اگر کاربر به Tableau Server وارد نشده باشد، یک رشته خالی برمیگرداند. | jsmith |
TableauServerUserFull | نام کاربری و دامنه کاربر فعلی سرور. هنگام تنظیم impersonation در سرور استفاده کنید. اگر کاربر به Tableau Server وارد نشده باشد، یک رشته خالی برمیگرداند. | domain.lan\jsmith |
TableauApp | نام برنامه Tableau. | Tableau Desktop Professional
Tableau Server |
TableauVersion | نسخه برنامه Tableau. | 9.3 |
WorkbookName | نام کتاب کار Tableau. فقط در کتاب های کاری با منبع داده جاسازی شده استفاده کنید. | Financial-Analysis |
هشدار: Tableau Desktop شامل دامنه نیست. اگر از نمایندگی استفاده نمی کنید و پیکربندی tsm را تنظیم می کنید، می توانید آن را اضافه کنید
set -k DelegationUseFullDomainName=-v true–force-keys
مثالهای زیر راههای مختلفی را نشان میدهند که میتوانید از پارامترها در دستور SQL اولیه استفاده کنید.
این مثال زمینه امنیتی مایکروسافت SQLServer را تنظیم می کند:
EXECUTE AS USER = [TableauServerUser] WITH NO REVERT.
این مثال نشان میدهد که چگونه در یک منبع داده DataStax، میتوانید از پارامترها برای افزودن جزئیات به گزارشگیری یا تنظیم یک متغیر جلسه برای ردیابی دادهها استفاده کنید:
SET TABLEAUVERSION [TableauVersion];
از این مثال می توان برای کمک به تنظیم امنیت در سطح ردیف برای Oracle VPD استفاده کرد:
begin
DBMS_SESSION.SET_IDENTIFIER([TableauServerUser]);
end;
توجه: بلوک های Oracle PL/SQL به یک نقطه ویرگول انتهایی برای خاتمه دادن به بلوک نیاز دارند. برای سینتکس مناسب با اسناد Oracle مشورت کنید.
اجرای را به سرور موکول کنید
می توانید یک دستور SQL اولیه را به تعویق بیندازید تا فقط روی سرور اجرا شود. یکی از دلایل به تعویق انداختن اجرا به سرور این است که شما اجازه اجرای دستوراتی را ندارید که جعل هویت را تنظیم می کنند. از تگهای <ServerOnly></ServerOnly> برای محصور کردن دستوراتی که فقط روی سرور اجرا میشوند، استفاده کنید.
مثال:
CREATE TEMP TABLE TempTable(x varchar(25)); INSERT INTO TempTable VALUES (1); <ServerOnly>INSERT INTO TempTable Values(2);</ServerOnly>
امنیت و impersonation
هنگامی که از پارامتر TableauServerUser یا TableauServerUserFull در دستور SQL اولیه استفاده می کنید، یک اتصال اختصاصی ایجاد می کنید که نمی تواند با سایر کاربران به اشتراک گذاشته شود. این همچنین می تواند اشتراک کش را محدود کند، که می تواند امنیت را افزایش دهد، اما ممکن است عملکرد را نیز کاهش دهد.
عیب یابی «ایجاد جدول» برای اتصالات MySQL و Oracle
برای اتصالات MySQL، جداول پس از استفاده از SQL اولیه برای ایجاد جدول، فهرست نمی شوند
پس از اتصال به MySQL و اجرای دستور SQL اولیه، ممکن است جداول به دلیل روشی که Tableau پرس و جو را می سازد، نمایش داده نشوند.
CREATE TABLE TestV1.testtable77(testID int);
برای حل این مشکل، IF NOT EXISTS را به دستور SQL اضافه کنید:
CREATE TABLE IF NOT EXISTS TestV1.TestTable(testID int);
برای اتصالات اوراکل، استفاده از SQL اولیه برای ایجاد جدول باعث توقف Tableau می شود
پس از اتصال به Oracle و اجرای دستور SQL اولیه، Tableau با یک چرخ چرخان متوقف می شود زیرا Tableau پرس و جو را می سازد.
CREATE TABLE TEST_TABLE (TESTid int)
برای حل این مشکل از دستور SQL زیر استفاده کنید:
BEGIN EXECUTE IMMEDIATE 'create table test_table(testID int)'; EXCEPTION WHEN OTHERS THEN NULL; END;
برای خرید لایسنس نرم افزار Tableau ، میتوانید از خدمات ما استفاده نموده و درخواست خود را از طریق فرم زیر ثبت نمایید.
بدون دیدگاه