ניהול העברות

במאמר הזה מוסבר איך לנהל הגדרות קיימות של העברת נתונים.

אפשר גם להפעיל ידנית העברה קיימת, שנקראת גם הרצת מילוי חוסרים.

הצגת ההעברות

אפשר לראות את הגדרות ההעברה הקיימות על ידי הצגת מידע על כל העברה, הצגת רשימה של כל ההעברות הקיימות והצגת היסטוריית ההרצה של ההעברה או הודעות יומן.

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות לצפייה בפרטי ההעברה, צריך לבקש מהאדמין להקצות לכם את תפקיד ה-IAM‏ BigQuery User (roles/bigquery.user) בפרויקט. להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

בנוסף, כדי להציג הודעות ביומן דרך Google Cloud המסוף, אתם צריכים הרשאות להצגת נתונים ב-Cloud Logging. התפקיד 'צפייה ביומנים' (roles/logging.viewer) נותן הרשאת קריאה בלבד לכל התכונות של Logging. במדריך בקרת הגישה של Cloud Logging מוסבר בהרחבה על ההרשאות והתפקידים ב-IAM שחלים על נתוני יומנים ב-Cloud.

מידע נוסף על תפקידי IAM בשירות העברת נתונים ל-BigQuery זמין במאמר בנושא בקרת גישה.

קבלת פרטי ההעברה

אחרי שיוצרים העברה, אפשר לקבל מידע על ההגדרה שלה. ההגדרה כוללת את הערכים שסיפקתם כשיצרתם את ההעברה, וגם מידע חשוב אחר כמו שמות משאבים.

כדי לקבל מידע על הגדרת העברה:

המסוף

  1. עוברים לדף העברות נתונים.

    מעבר אל "העברות נתונים"

  2. בוחרים את ההעברה שרוצים לקבל לגביה פרטים.

  3. כדי לראות את הגדרות ההעברה ואת פרטי מקור הנתונים, לוחצים על הגדרות בדף פרטי ההעברה. בדוגמה הבאה מוצגים מאפייני ההגדרה של העברה ב-Google Ads:

    העברת הגדרות במסוף

BQ

מזינים את הפקודה bq show ומציינים את שם המשאב של הגדרת ההעברה. אפשר להשתמש בדגל --format כדי לשלוט בפורמט הפלט.

bq show \
--format=prettyjson \
--transfer_config resource_name

מחליפים את resource_name בשם המשאב של ההעברה (נקרא גם תצורת ההעברה). אם לא ידוע לכם שם המשאב של ההעברה, תוכלו למצוא אותו באמצעות הפקודה: bq ls --transfer_config --transfer_location=location.

לדוגמה, מזינים את הפקודה הבאה כדי להציג את הגדרות ההעברה של projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq show \
--format=prettyjson \
--transfer_config projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

משתמשים בשיטה projects.locations.transferConfigs.get ומספקים את הגדרות ההעברה באמצעות הפרמטר name.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferConfigRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import java.io.IOException;

// Sample to get config info.
public class GetTransferConfigInfo {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    getTransferConfigInfo(configId);
  }

  public static void getTransferConfigInfo(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferConfigRequest request =
          GetTransferConfigRequest.newBuilder().setName(configId).build();
      TransferConfig info = dataTransferServiceClient.getTransferConfig(request);
      System.out.print("Config info retrieved successfully." + info.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("config not found." + ex.toString());
    }
  }
}

הצגת רשימה של הגדרות העברה

כדי להציג רשימה של כל הגדרות ההעברה הקיימות בפרויקט:

המסוף

  1. נכנסים לדף 'העברות נתונים' במסוף Google Cloud .

    מעבר אל "העברות נתונים"

  2. אם יש הגדרות העברה בפרויקט, רשימת הגדרות ההעברה מופיעה ברשימת העברות הנתונים.

BQ

כדי לראות את כל הגדרות ההעברה של פרויקט לפי מיקום, מזינים את הפקודה bq ls ומספקים את הדגלים --transfer_location ו---transfer_config. אפשר גם להשתמש בדגל --project_id כדי לציין פרויקט מסוים. אם לא מציינים את --project_id, נעשה שימוש בפרויקט שמוגדר כברירת מחדל. אפשר להשתמש בדגל --format כדי לשלוט בפורמט הפלט.

כדי להציג רשימה של הגדרות העברה למקורות נתונים מסוימים, צריך להשתמש בדגל --filter.

כדי להציג מספר מסוים של הגדרות העברה בפורמט עם מספור עמודים, מציינים את מספר ההעברות באמצעות הדגל --max_results. הפקודה מחזירה אסימון דף שאתם מספקים באמצעות הדגל --page_token כדי לראות את n ההגדרות הבאות. אם לא מציינים את --max_results, הפונקציה תחזיר עד 1,000 הגדרות. אי אפשר להזין ערכים גדולים מ-1,000 ב---max_results. אם בפרויקט יש יותר מ-1,000 הגדרות, משתמשים בפקודות --max_results ו---page_token כדי לעבור על כולן.

bq ls \
--transfer_config \
--transfer_location=location \
--project_id=project_id \
--max_results=integer \
--filter=dataSourceIds:data_sources

מחליפים את מה שכתוב בשדות הבאים:

דוגמאות:

מזינים את הפקודה הבאה כדי להציג את כל הגדרות ההעברה בארה"ב עבור פרויקט ברירת המחדל. הפלט נשלט באמצעות הדגל --format.

bq ls \
--format=prettyjson \
--transfer_config \
--transfer_location=us

מזינים את הפקודה הבאה כדי להציג את כל הגדרות ההעברה בארה"ב עבור מזהה הפרויקט myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject

מזינים את הפקודה הבאה כדי להציג את 3 הגדרות ההעברה האחרונות.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3

הפקודה מחזירה טוקן של הדף הבא. מעתיקים את אסימון הדף ומזינים אותו בפקודה bq ls כדי לראות את 3 התוצאות הבאות.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL

מזינים את הפקודה הבאה כדי לראות את ההגדרות של העברות מ-Google Ads ומ-Campaign Manager עבור מזהה הפרויקט myproject.

bq ls \
--transfer_config \
--transfer_location=us \
--project_id=myproject \
--filter=dataSourceIds:dcm_dt,google_ads

API

משתמשים ב-method‏ projects.locations.transferConfigs.list ומספקים את מזהה הפרויקט באמצעות הפרמטר parent.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferConfigsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
import java.io.IOException;

// Sample to get list of transfer config
public class ListTransferConfigs {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    final String projectId = "MY_PROJECT_ID";
    listTransferConfigs(projectId);
  }

  public static void listTransferConfigs(String projectId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ProjectName parent = ProjectName.of(projectId);
      ListTransferConfigsRequest request =
          ListTransferConfigsRequest.newBuilder().setParent(parent.toString()).build();
      dataTransferServiceClient
          .listTransferConfigs(request)
          .iterateAll()
          .forEach(config -> System.out.print("Success! Config ID :" + config.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Config list not found due to error." + ex.toString());
    }
  }
}

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer_v1

client = bigquery_datatransfer_v1.DataTransferServiceClient()


def list_transfer_configs(project_id: str, location: str) -> None:
    """Lists transfer configurations in a given project.

    This sample demonstrates how to list all transfer configurations in a project.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the transfer config, for example "us-central1"
    """

    parent = client.common_location_path(project_id, location)

    try:
        for config in client.list_transfer_configs(parent=parent):
            print(f"Name: {config.name}")
            print(f"Display Name: {config.display_name}")
            print(f"Data source: {config.data_source_id}")
            print(f"Destination dataset: {config.destination_dataset_id}")
            if "time_based_schedule" in config.schedule_options_v2:
                print(
                    f"Schedule: {config.schedule_options_v2.time_based_schedule.schedule}"
                )
            else:
                print("Schedule: None")
            print("---")
    except google.api_core.exceptions.NotFound:
        print(
            f"Error: Project '{project_id}' not found or contains no transfer configs."
        )
    except google.api_core.exceptions.PermissionDenied:
        print(
            f"Error: Permission denied for project '{project_id}'. Please ensure you have the correct permissions."
        )

הצגת היסטוריית ההרצות של ההעברה

במהלך ההרצה של ההעברות המתוזמנות, נשמרת היסטוריית הרצות לכל הגדרת העברה, שכוללת הרצות העברה מוצלחות והרצות העברה שנכשלו. העברות שבוצעו לפני יותר מ-90 ימים נמחקות אוטומטית מהיסטוריית ההרצות.

כדי לראות את היסטוריית ההרצות של הגדרת העברה:

המסוף

  1. נכנסים לדף 'העברות נתונים' במסוף Google Cloud .

    מעבר אל "העברות נתונים"

  2. לוחצים על ההעברה ברשימת העברות הנתונים.

  3. תועברו לדף RUN HISTORY של ההעברה שנבחרה.

BQ

כדי להציג רשימה של הפעלות העברה של הגדרת העברה מסוימת, מזינים את הפקודה bq ls ומספקים את הדגל --transfer_run. אפשר גם להשתמש בדגל --project_id כדי לציין פרויקט מסוים. אם resource_name לא מכיל פרטי פרויקט, נעשה שימוש בערך --project_id. אם לא מציינים את --project_id, המערכת משתמשת בפרויקט שמוגדר כברירת מחדל. אפשר להשתמש בדגל --format כדי לשלוט בפורמט הפלט.

כדי להציג מספר מסוים של הפעלות העברה, מציינים את האפשרות --max_results. הפקודה מחזירה אסימון דף שאתם מספקים באמצעות הדגל --page_token כדי לראות את n ההגדרות הבאות.

כדי להציג רשימה של העברות על סמך מצב ההפעלה, מציינים את הדגל --filter.

bq ls \
--transfer_run \
--max_results=integer \
--transfer_location=location \
--project_id=project_id \
--filter=states:state, ... \
resource_name

מחליפים את מה שכתוב בשדות הבאים:

  • integer הוא מספר התוצאות שיוחזרו.
  • location הוא המיקום של הגדרות ההעברה. כשיוצרים העברה, מציינים את המיקום.
  • project_id הוא מזהה הפרויקט.
  • state, ... הוא אחד מהערכים הבאים או רשימה מופרדת בפסיקים:
    • SUCCEEDED
    • FAILED
    • PENDING
    • RUNNING
    • CANCELLED
  • resource_name הוא שם המשאב של ההעברה (נקרא גם הגדרת ההעברה). אם לא ידוע לכם שם המשאב של ההעברה, תוכלו למצוא אותו באמצעות: bq ls --transfer_config --transfer_location=location.

דוגמאות:

מזינים את הפקודה הבאה כדי להציג את 3 ההרצות האחרונות של הגדרת ההעברה projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7. הפלט נשלט באמצעות הדגל --format.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

הפקודה מחזירה טוקן של הדף הבא. מעתיקים את אסימון הדף ומזינים אותו בפקודה bq ls כדי לראות את 3 התוצאות הבאות.

bq ls \
--format=prettyjson \
--transfer_run \
--max_results=3 \
--page_token=AB1CdEfg_hIJKL \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

מזינים את הפקודה הבאה כדי להציג את כל ההרצות שנכשלו להגדרת העברה projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq ls \
--format=prettyjson \
--transfer_run \
--filter=states:FAILED \
--transfer_location=us \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

משתמשים ב-method‏ projects.locations.transferConfigs.runs.list ומציינים את מזהה הפרויקט באמצעות הפרמטר parent.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ListTransferRunsRequest;
import java.io.IOException;

// Sample to get run history from transfer config.
public class RunHistory {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    runHistory(configId);
  }

  public static void runHistory(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      ListTransferRunsRequest request =
          ListTransferRunsRequest.newBuilder().setParent(configId).build();
      dataTransferServiceClient
          .listTransferRuns(request)
          .iterateAll()
          .forEach(run -> System.out.print("Success! Run ID :" + run.getName() + "\n"));
    } catch (ApiException ex) {
      System.out.println("Run history not found due to error." + ex.toString());
    }
  }
}

הצגת פרטים של הפעלת העברה והודעות יומן

כשמריצים העברה, היא מופיעה בהיסטוריית ההרצות. אפשר לראות את פרטי ההרצה, כולל הודעות יומן, אזהרות ושגיאות, שם ההרצה ושעת ההתחלה והסיום.

כדי לראות את פרטי ההרצה של ההעברה:

המסוף

  1. נכנסים לדף 'העברות נתונים' במסוף Google Cloud .

    מעבר אל "העברות נתונים"

  2. לוחצים על ההעברה ברשימת העברות הנתונים.

  3. תועברו לדף RUN HISTORY של ההעברה שנבחרה.

  4. לוחצים על הפעלה ספציפית של ההעברה, וייפתח החלונית פרטי ההפעלה של ההפעלה הזו.

  5. בקטע Run details, מציינים את הודעות השגיאה. המידע הזה נדרש אם פונים ל-Cloud Customer Care. פרטי ההרצה כוללים גם הודעות יומן ואזהרות.

    פרטי ההפעלה במסוף

BQ

כדי לראות את הפרטים של העברת נתונים, מזינים את הפקודה bq show ומספקים את שם ההפעלה של העברת הנתונים באמצעות הדגל --transfer_run. אפשר להשתמש בדגל --format כדי לשלוט בפורמט הפלט.

bq show \
--format=prettyjson \
--transfer_run run_name

מחליפים את run_name בשם ההרצה של ההעברה. אפשר לאחזר את שם ההרצה באמצעות הפקודה bq ls.

דוגמה:

מזינים את הפקודה הבאה כדי להציג את הפרטים של הרצת ההעברה projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq show \
--format=prettyjson \
--transfer_run \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

כדי לראות את ההודעות ביומן ההעברה של הרצת העברה, מזינים את הפקודה bq ls עם הדגל --transfer_log. אפשר לסנן הודעות ביומן לפי סוג באמצעות הדגל --message_type.

כדי להציג מספר מסוים של הודעות ביומן, מציינים את האפשרות --max_results flag. הפקודה מחזירה טוקן של דף שאתם מספקים באמצעות הדגל --page_token כדי לראות את n ההודעות הבאות.

bq ls \
--transfer_log \
--max_results=integer \
--message_type=messageTypes:message_type \
run_name

מחליפים את מה שכתוב בשדות הבאים:

  • integer הוא מספר הודעות היומן שיוחזרו.
  • message_type הוא סוג הודעת היומן שרוצים להציג (ערך יחיד או רשימה מופרדת בפסיקים):
    • INFO
    • WARNING
    • ERROR
  • run_name הוא שם ההרצה של ההעברה. אפשר לאחזר את שם ההרצה באמצעות הפקודה bq ls.

דוגמאות:

מזינים את הפקודה הבאה כדי לראות את 2 הודעות היומן הראשונות להעברה run projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--max_results=2 \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

הפקודה מחזירה טוקן של הדף הבא. מעתיקים את אסימון הדף ומזינים אותו בפקודה bq ls כדי לראות את 2 התוצאות הבאות.

bq ls \
--transfer_log \
--max_results=2 \
--page_token=AB1CdEfg_hIJKL \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

מזינים את הפקודה הבאה כדי לראות רק את הודעות השגיאה של העברת נתונים מספר projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g.

bq ls \
--transfer_log \
--message_type=messageTypes:ERROR \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7/runs/1a2b345c-0000-1234-5a67-89de1f12345g

API

משתמשים בשיטה projects.transferConfigs.runs.transferLogs.list ומזינים את שם ההרצה של ההעברה באמצעות הפרמטר parent.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.GetTransferRunRequest;
import com.google.cloud.bigquery.datatransfer.v1.TransferRun;
import java.io.IOException;

// Sample to get run details from transfer config.
public class RunDetails {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // runId examples:
    // `projects/{project_id}/transferConfigs/{config_id}/runs/{run_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}/runs/{run_id}`
    String runId = "MY_RUN_ID";
    runDetails(runId);
  }

  public static void runDetails(String runId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      GetTransferRunRequest request = GetTransferRunRequest.newBuilder().setName(runId).build();
      TransferRun run = dataTransferServiceClient.getTransferRun(request);
      System.out.print("Run details retrieved successfully :" + run.getName() + "\n");
    } catch (ApiException ex) {
      System.out.print("Run details not found." + ex.toString());
    }
  }
}

שינוי ההעברות

אפשר לשנות העברות קיימות על ידי עריכת המידע בהגדרות ההעברה, עדכון פרטי הכניסה של משתמש שמצורפים להגדרות ההעברה והשבתה או מחיקה של העברה.

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות לשינוי העברות, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין של BigQuery (roles/bigquery.admin) בפרויקט. להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

עדכון העברה

אחרי שיוצרים הגדרת העברה, אפשר לערוך את השדות הבאים:

  • מערך נתוני יעד
  • השם המוצג
  • כל אחד מהפרמטרים שצוינו לסוג ההעברה הספציפי
  • הפעלת הגדרות ההתראות
  • חשבון שירות

אי אפשר לערוך את המקור של העברה אחרי שהיא נוצרת.

כדי לעדכן העברה:

המסוף

  1. נכנסים לדף 'העברות נתונים' במסוף Google Cloud .

    מעבר אל "העברות נתונים"

  2. לוחצים על ההעברה ברשימת העברות הנתונים.

  3. לוחצים על עריכה כדי לעדכן את הגדרות ההעברה.

BQ

מזינים את הפקודה bq update, מציינים את שם המשאב של הגדרות ההעברה באמצעות הדגל --transfer_config ומזינים את הדגלים --display_name, --params, --refresh_window_days, --schedule או --target_dataset. אפשר להוסיף את הדגל --destination_kms_key לשאילתות מתוזמנות או להעברות של Cloud Storage.

bq update \
--display_name='NAME' \
--params='PARAMETERS' \
--refresh_window_days=INTEGER \
--schedule='SCHEDULE'
--target_dataset=DATASET_ID \
--destination_kms_key="DESTINATION_KEY" \
--transfer_config \
--service_account_name=SERVICE_ACCOUNT \
RESOURCE_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • NAME: השם המוצג של הגדרות ההעברה.
  • PARAMETERS: הפרמטרים של הגדרת ההעברה בפורמט JSON. לדוגמה: --params='{"param1":"param_value1"}'. מידע על פרמטרים נתמכים מופיע במדריך ההעברה של מקור הנתונים.
  • INTEGER: ערך מ-0 עד 30. מידע על הגדרת חלון הרענון מופיע במאמרי העזרה שמתאימים לסוג ההעברה.
  • SCHEDULE: לוח זמנים חוזר, כמו --schedule="every 3 hours". תיאור של התחביר של schedule מופיע במאמר עיצוב של schedule.
  • DATASET_ID: מערך הנתונים היעד להגדרת ההעברה.
  • DESTINATION_KEY: מזהה משאב המפתח של Cloud KMS. לדוגמה: projects/project_name/locations/us/keyRings/key_ring_name/cryptoKeys/key_name. CMEK זמין רק עבור שאילתות מתוזמנות או העברות של Cloud Storage.
  • SERVICE_ACCOUNT: מציינים חשבון שירות לשימוש בהעברה הזו.
  • RESOURCE_NAME: שם המשאב של ההעברה (נקרא גם הגדרת ההעברה). אם לא ידוע לכם שם המשאב של ההעברה, תוכלו למצוא אותו באמצעות: bq ls --transfer_config --transfer_location=location.

דוגמאות:

הפקודה הבאה מעדכנת את שם התצוגה, מערך נתוני היעד, חלון הרענון והפרמטרים להעברה אל Google Adsprojects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7:

bq update \
--display_name='My changed transfer' \
--params='{"customer_id":"123-123-5678"}' \
--refresh_window_days=3 \
--target_dataset=mydataset2 \
--transfer_config \
 projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

הפקודה הבאה מעדכנת את הפרמטרים ואת התזמון של העברת שאילתה מתוזמנת projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9:

bq update \
--params='{"destination_table_name_template":"test", "write_disposition":"APPEND"}' \
--schedule="every 24 hours" \
--transfer_config \
projects/myproject/locations/us/transferConfigs/5678z567-5678-5z67-5yx9-56zy3c866vw9

API

משתמשים בשיטה projects.transferConfigs.patch ומספקים את שם המשאב של ההעברה באמצעות הפרמטר transferConfig.name. אם לא ידוע לכם שם המשאב של ההעברה, תוכלו למצוא אותו באמצעות הפקודה: bq ls --transfer_config --transfer_location=location. אפשר גם להשתמש בשיטה הבאה ולספק את מזהה הפרויקט באמצעות הפרמטר parent כדי להציג רשימה של כל ההעברות: projects.locations.transferConfigs.list.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update transfer config.
public class UpdateTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder()
            .setName(configId)
            .setDisplayName("UPDATED_DISPLAY_NAME")
            .build();
    FieldMask updateMask = FieldMaskUtil.fromString("display_name");
    updateTransferConfig(transferConfig, updateMask);
  }

  public static void updateTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config updated successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not updated." + ex.toString());
    }
  }
}

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer_v1
from google.protobuf import field_mask_pb2


client = bigquery_datatransfer_v1.DataTransferServiceClient()


def update_transfer_config(
    project_id: str,
    location: str,
    transfer_config_id: str,
) -> None:
    """Updates a data transfer configuration.

    This sample shows how to update the display name for a transfer
    configuration.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the transfer config, for example "us-central1"
        transfer_config_id: The transfer configuration ID
    """
    transfer_config_name = client.transfer_config_path(
        project=f"{project_id}/locations/{location}",
        transfer_config=transfer_config_id,
    )

    transfer_config = bigquery_datatransfer_v1.types.TransferConfig(
        name=transfer_config_name,
        display_name="My New Transfer Config display name",
    )
    update_mask = field_mask_pb2.FieldMask(paths=["display_name"])

    try:
        response = client.update_transfer_config(
            transfer_config=transfer_config,
            update_mask=update_mask,
        )

        print(f"Updated transfer config: {response.name}")
        print(f"New display name: {response.display_name}")
    except google.api_core.exceptions.NotFound:
        print(f"Error: Transfer config '{transfer_config_name}' not found.")

עדכון פרטי הכניסה

ההעברה מתבצעת באמצעות פרטי הכניסה של המשתמש שיצר אותה. אם אתם צריכים לשנות את המשתמש שמצורף להגדרת העברה, אתם יכולים לעדכן את פרטי הכניסה של ההעברה. האפשרות הזו שימושית אם המשתמש שיצר את ההעברה כבר לא עובד בארגון.

כדי לעדכן את פרטי הכניסה להעברה:

המסוף

  1. במסוף Google Cloud , נכנסים כמשתמש שאליו רוצים להעביר את הבעלות.

  2. עוברים לדף 'העברות נתונים'.

    מעבר אל "העברות נתונים"

  3. לוחצים על ההעברה ברשימת העברות הנתונים.

  4. לוחצים על התפריט עוד ואז על רענון פרטי הכניסה.

  5. לוחצים על אישור כדי לתת לשירות העברת הנתונים ל-BigQuery הרשאה לצפות בנתוני הדיווח שלכם, ולגשת לנתונים ב-BigQuery ולנהל אותם.

BQ

מזינים את הפקודה bq update, מציינים את שם המשאב של הגדרת ההעברה באמצעות הדגל --transfer_config ומזינים את הדגל --update_credentials.

bq update \
--update_credentials=boolean \
--transfer_config \
resource_name

מחליפים את מה שכתוב בשדות הבאים:

  • boolean הוא ערך בוליאני שמציין אם צריך לעדכן את פרטי הכניסה להגדרת ההעברה.
  • resource_name הוא שם המשאב של ההעברה (נקרא גם הגדרת ההעברה). אם לא ידוע לכם שם המשאב של ההעברה, תוכלו למצוא אותו באמצעות הפקודה: bq ls --transfer_config --transfer_location=location.

דוגמאות:

מזינים את הפקודה הבאה כדי לעדכן את פרטי הכניסה להעברה של Google Ads projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq update \
--update_credentials=true \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

משתמשים בשיטה projects.transferConfigs.patch ומספקים את הפרמטרים authorizationCode ו-updateMask.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to update credentials in transfer config.
public class UpdateCredentials {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    String serviceAccount = "MY_SERVICE_ACCOUNT";
    TransferConfig transferConfig = TransferConfig.newBuilder().setName(configId).build();
    FieldMask updateMask = FieldMaskUtil.fromString("service_account_name");
    updateCredentials(transferConfig, serviceAccount, updateMask);
  }

  public static void updateCredentials(
      TransferConfig transferConfig, String serviceAccount, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .setServiceAccountName(serviceAccount)
              .build();
      dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Credentials updated successfully");
    } catch (ApiException ex) {
      System.out.print("Credentials was not updated." + ex.toString());
    }
  }
}

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

from google.cloud import bigquery_datatransfer
from google.protobuf import field_mask_pb2

transfer_client = bigquery_datatransfer.DataTransferServiceClient()

service_account_name = "abcdef-test-sa@abcdef-test.iam.gserviceaccount.com"
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"

transfer_config = bigquery_datatransfer.TransferConfig(name=transfer_config_name)

transfer_config = transfer_client.update_transfer_config(
    {
        "transfer_config": transfer_config,
        "update_mask": field_mask_pb2.FieldMask(paths=["service_account_name"]),
        "service_account_name": service_account_name,
    }
)

print("Updated config: '{}'".format(transfer_config.name))

השבתת העברה

כשמשביתים העברה, התו disabled מתווסף לשם ההעברה. כשההעברה מושבתת, לא מתוזמנות הרצות חדשות של העברה ולא מתאפשרות השלמות חוסרים חדשות. כל ההעברות שמתבצעות יסתיימו.

השבתה של העברה לא מסירה נתונים שכבר הועברו ל-BigQuery. על נתונים שהועברו בעבר חלות עלויות אחסון רגילות ב-BigQuery עד שמוחקים את מערך הנתונים או מוחקים את הטבלאות.

כדי להשבית העברה:

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. לוחצים על העברות.

  3. בדף העברות, לוחצים על ההעברה ברשימה שרוצים להשבית.

  4. לוחצים על השבתה. כדי להפעיל מחדש את ההעברה, לוחצים על הפעלה.

BQ

אי אפשר להשבית העברה באמצעות CLI.

API

משתמשים בשיטה projects.locations.transferConfigs.patch ומגדירים את disabled ל-true במשאב projects.locations.transferConfig.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to disable transfer config.
public class DisableTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder().setName(configId).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

כדי להפעיל מחדש את ההעברה:

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

/*
 * Copyright 2020 Google LLC
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

package com.example.bigquerydatatransfer;

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
import com.google.cloud.bigquery.datatransfer.v1.UpdateTransferConfigRequest;
import com.google.protobuf.FieldMask;
import com.google.protobuf.util.FieldMaskUtil;
import java.io.IOException;

// Sample to disable transfer config.
public class DisableTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    TransferConfig transferConfig =
        TransferConfig.newBuilder().setName(configId).setDisabled(true).build();
    FieldMask updateMask = FieldMaskUtil.fromString("disabled");
    disableTransferConfig(transferConfig, updateMask);
  }

  public static void disableTransferConfig(TransferConfig transferConfig, FieldMask updateMask)
      throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      UpdateTransferConfigRequest request =
          UpdateTransferConfigRequest.newBuilder()
              .setTransferConfig(transferConfig)
              .setUpdateMask(updateMask)
              .build();
      TransferConfig updateConfig = dataTransferServiceClient.updateTransferConfig(request);
      System.out.println("Transfer config disabled successfully :" + updateConfig.getDisplayName());
    } catch (ApiException ex) {
      System.out.print("Transfer config was not disabled." + ex.toString());
    }
  }
}

מחיקת העברה

כשמוחקים העברה, לא מתוזמנות הרצות חדשות של העברה. כל הריצות של העברות שנמצאות בתהליך ייעצרו.

מחיקה של העברה לא מסירה נתונים שכבר הועברו ל-BigQuery. על נתונים שהועברו בעבר חלות עלויות אחסון רגילות ב-BigQuery עד שמוחקים את מערך הנתונים או מוחקים את הטבלאות.

כדי למחוק העברה:

המסוף

  1. נכנסים לדף BigQuery במסוף Google Cloud .

    כניסה ל-BigQuery

  2. לוחצים על העברות.

  3. בדף העברות, לוחצים על ההעברה ברשימה שרוצים למחוק.

  4. לוחצים על מחיקה. כאמצעי בטיחות, תצטרכו להקליד את המילה delete בתיבה כדי לאשר את הכוונה שלכם.

BQ

מזינים את הפקודה bq rm ומציינים את שם המשאב של הגדרת ההעברה. אפשר להשתמש בדגל -f כדי למחוק הגדרת העברה בלי אישור.

bq rm \
-f \
--transfer_config \
resource_name

כאשר:

  • resource_name הוא שם המשאב של ההעברה, שנקרא גם הגדרת ההעברה. אם אתם לא יודעים את שם המשאב של ההעברה, מריצים את הפקודה bq ls --transfer_config --transfer_location=location כדי להציג רשימה של כל ההעברות.

לדוגמה, מזינים את הפקודה הבאה כדי למחוק את הגדרת ההעברה projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

bq rm \
--transfer_config \
projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

משתמשים בשיטה projects.locations.transferConfigs.delete ומספקים את המשאב שרוצים למחוק באמצעות הפרמטר name.

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.DeleteTransferConfigRequest;
import java.io.IOException;

// Sample to delete a transfer config
public class DeleteTransferConfig {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    // i.e projects/{project_id}/transferConfigs/{config_id}` or
    // `projects/{project_id}/locations/{location_id}/transferConfigs/{config_id}`
    String configId = "MY_CONFIG_ID";
    deleteTransferConfig(configId);
  }

  public static void deleteTransferConfig(String configId) throws IOException {
    try (DataTransferServiceClient dataTransferServiceClient = DataTransferServiceClient.create()) {
      DeleteTransferConfigRequest request =
          DeleteTransferConfigRequest.newBuilder().setName(configId).build();
      dataTransferServiceClient.deleteTransferConfig(request);
      System.out.println("Transfer config deleted successfully");
    } catch (ApiException ex) {
      System.out.println("Transfer config was not deleted." + ex.toString());
    }
  }
}

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import google.api_core.exceptions
from google.cloud import bigquery_datatransfer_v1

client = bigquery_datatransfer_v1.DataTransferServiceClient()


def delete_transfer_config(
    project_id: str, location: str, transfer_config_id: str
) -> None:
    """Deletes a data transfer configuration, including any associated transfer runs and logs.

    Args:
        project_id: The Google Cloud project ID.
        location: The geographic location of the transfer configuration, for example, "us-central1".
        transfer_config_id: The transfer configuration ID, for example, "1234a-5678-90b1-2c3d-4e5f67890g12".
    """

    name = client.transfer_config_path(
        project=f"{project_id}/locations/{location}",
        transfer_config=transfer_config_id,
    )
    request = bigquery_datatransfer_v1.DeleteTransferConfigRequest(name=name)

    try:
        client.delete_transfer_config(request=request)
        print(f"Deleted transfer config {name}")
    except google.api_core.exceptions.NotFound:
        print(f"Error: Transfer config '{name}' not found.")

כשמוחקים העברת נתונים עם קבצים מצורפים ברשת, יכול להיות שיחלפו כמה ימים עד שאפשר יהיה למחוק את הקבצים המצורפים ברשת שמשויכים להעברת הנתונים הזו. מידע נוסף זמין במאמר בנושא בעיות כלליות.

הפעלת העברה באופן ידני

אתם יכולים להפעיל העברה באופן ידני, שנקראת גם הרצת מילוי חוסרים, כדי לטעון קובצי נתונים נוספים מחוץ להעברות המתוזמנות האוטומטיות. במקורות נתונים שתומכים בפרמטרים של זמן ריצה, אפשר גם להפעיל העברה באופן ידני על ידי ציון תאריך או טווח תאריכים לטעינת נתונים קודמים.

אפשר להפעיל השלמת חוסר בנתונים באופן ידני בכל שלב. בנוסף למגבלות המקור, שירות העברת הנתונים ל-BigQuery תומך בבקשות לאכלוס מחדש של נתונים עד 180 ימים. אין תמיכה בבקשות למילוי חוסרים בו-זמני.

מידע על כמות הנתונים שזמינה למילוי חוסרים מופיע במדריך ההעברה של מקור הנתונים.

התפקידים הנדרשים

כדי לקבל את ההרשאות שנדרשות לשינוי העברות, צריך לבקש מהאדמין להקצות לכם ב-IAM את התפקיד אדמין של BigQuery (roles/bigquery.admin) בפרויקט. להסבר על מתן תפקידים, ראו איך מנהלים את הגישה ברמת הפרויקט, התיקייה והארגון.

יכול להיות שאפשר לקבל את ההרשאות הנדרשות גם באמצעות תפקידים בהתאמה אישית או תפקידים מוגדרים מראש.

הפעלה ידנית של העברה או מילוי חוסרים

אפשר להפעיל העברה או מילוי חוסרים באופן ידני באמצעות השיטות הבאות:

  • בוחרים את ההרצה של ההעברה באמצעות Google Cloud המסוף, ואז לוחצים על הפעלת ההעברה עכשיו או על תזמון מילוי חוסרים.
  • משתמשים בפקודה bq mk –transfer run באמצעות הכלי bq של שורת הפקודה.
  • קריאה לשיטת ה-API‏ projects.locations.transferConfigs.startManualRuns method

כדי לקבל הוראות מפורטות לגבי כל שיטה, בוחרים בכרטיסייה המתאימה:

המסוף

  1. נכנסים לדף 'העברות נתונים' במסוף Google Cloud .

    מעבר אל "העברות נתונים"

  2. בוחרים את ההעברה מהרשימה.

  3. לוחצים על הפעלת ההעברה עכשיו או על תזמון מילוי חוסרים. אפשרות אחת בלבד זמינה בהתאם לסוג ההגדרה של ההעברה.

    • אם לחצתם על הפעלת ההעברה עכשיו, בוחרים באפשרות הפעלת העברה חד-פעמית או באפשרות הפעלה בתאריך ספציפי, לפי הצורך. אם בחרתם באפשרות הפעלה בתאריך ספציפי, בוחרים תאריך ושעה ספציפיים:

      הפעלת ההעברה עכשיו

    • אם לחצתם על תזמון מילוי חוסרים, בוחרים באפשרות הפעלת העברה חד-פעמית או באפשרות הפעלה לטווח תאריכים, לפי הצורך. אם בחרתם באפשרות הפעלה בטווח תאריכים, בוחרים תאריך ושעה להתחלה ולסיום:

      תזמון מילוי חוסרים

  4. לוחצים על OK.

BQ

כדי להפעיל העברה באופן ידני, מזינים את הפקודה bq mk עם הדגל --transfer_run:

bq mk \
--transfer_run \
--run_time='RUN_TIME' \
RESOURCE_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • RUN_TIME היא חותמת זמן שמציינת את התאריך של העברה קודמת. צריך להשתמש בחותמות זמן שמסתיימות באות Z או שמכילות היסט תקף של אזור זמן – לדוגמה, 2022-08-19T12:11:35.00Z או 2022-05-25T00:00:00+00:00.
    • אם להעברה שלכם אין פרמטר של זמן ריצה, או שאתם רוצים להפעיל העברה עכשיו בלי לציין העברה קודמת, צריך להזין את השעה הנוכחית בשדה הזה.
  • RESOURCE_NAME הוא שם המשאב שמופיע בהגדרת ההעברה. לדוגמה, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7.

כדי להפעיל העברה באופן ידני לטווח תאריכים, מזינים את הפקודה bq mk עם הדגל --transfer_run וטווח תאריכים:

bq mk \
--transfer_run \
--start_time='START_TIME' \
--end_time='END_TIME' \
RESOURCE_NAME

מחליפים את מה שכתוב בשדות הבאים:

  • START_TIME ו-END_TIME הן חותמות זמן שמסתיימות באות Z או שמכילות היסט תקין של אזור זמן. הערכים האלה מציינים את טווח הזמן שמכיל את ההרצות הקודמות של ההעברה שרוצים לבצע להן מילוי חוזר – לדוגמה, 2022-08-19T12:11:35.00Z או 2022-05-25T00:00:00+00:00
  • RESOURCE_NAME הוא שם המשאב שמופיע בהגדרת ההעברה – לדוגמה, projects/myproject/locations/us/transferConfigs/1234a123-1234-1a23-1be9-12ab3c456de7

API

כדי להתחיל הפעלת העברה באופן ידני, משתמשים בשיטה projects.locations.transferConfigs.startManualRuns ומספקים את שם המשאב של הגדרת ההעברה באמצעות פרמטר האב. כדי למצוא את שם המשאב של הגדרת העברה, אפשר לעיין במאמר קבלת פרטי העברה

  "requestedRunTime": "RUN_TIME"

מחליפים את מה שכתוב בשדות הבאים:

  • RUN_TIME היא חותמת זמן שמציינת את התאריך של העברה קודמת. צריך להשתמש בחותמות זמן שמסתיימות באות Z או שמכילות היסט תקף של אזור זמן – לדוגמה, 2022-08-19T12:11:35.00Z או 2022-05-25T00:00:00+00:00.
    • אם להעברה שלכם אין פרמטר של זמן ריצה, או שאתם רוצים להפעיל העברה עכשיו בלי לציין העברה קודמת, צריך להזין את השעה הנוכחית בשדה הזה.

כדי להפעיל העברה באופן ידני לטווח תאריכים, צריך לציין טווח תאריכים:

"requestedTimeRange": {
  "startTime": "START_TIME",
  "endTime": "END_TIME"
}

מחליפים את מה שכתוב בשדות הבאים:

  • השדות START_TIME ו-END_TIME הם חותמות זמן שמסתיימות באות Z או מכילות היסט תקין של אזור זמן. הערכים האלה מציינים את טווח הזמן שמכיל את ההרצות הקודמות של ההעברה שרוצים לבצע להן מילוי חוזר – לדוגמה, 2022-08-19T12:11:35.00Z או 2022-05-25T00:00:00+00:00

Java

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Javaהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Java API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import com.google.api.gax.rpc.ApiException;
import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsRequest;
import com.google.cloud.bigquery.datatransfer.v1.ScheduleTransferRunsResponse;
import com.google.protobuf.Timestamp;
import java.io.IOException;
import org.threeten.bp.Clock;
import org.threeten.bp.Instant;
import org.threeten.bp.temporal.ChronoUnit;

// Sample to run schedule back fill for transfer config
public class ScheduleBackFill {

  public static void main(String[] args) throws IOException {
    // TODO(developer): Replace these variables before running the sample.
    String configId = "MY_CONFIG_ID";
    Clock clock = Clock.systemDefaultZone();
    Instant instant = clock.instant();
    Timestamp startTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(5, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(5, ChronoUnit.DAYS).getNano())
            .build();
    Timestamp endTime =
        Timestamp.newBuilder()
            .setSeconds(instant.minus(2, ChronoUnit.DAYS).getEpochSecond())
            .setNanos(instant.minus(2, ChronoUnit.DAYS).getNano())
            .build();
    scheduleBackFill(configId, startTime, endTime);
  }

  public static void scheduleBackFill(String configId, Timestamp startTime, Timestamp endTime)
      throws IOException {
    try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
      ScheduleTransferRunsRequest request =
          ScheduleTransferRunsRequest.newBuilder()
              .setParent(configId)
              .setStartTime(startTime)
              .setEndTime(endTime)
              .build();
      ScheduleTransferRunsResponse response = client.scheduleTransferRuns(request);
      System.out.println("Schedule backfill run successfully :" + response.getRunsCount());
    } catch (ApiException ex) {
      System.out.print("Schedule backfill was not run." + ex.toString());
    }
  }
}

Python

לפני שמנסים את הדוגמה הזו, צריך לפעול לפי Pythonהוראות ההגדרה שבמדריך למתחילים של BigQuery באמצעות ספריות לקוח. מידע נוסף מופיע במאמרי העזרה של BigQuery Python API.

כדי לבצע אימות ב-BigQuery, צריך להגדיר את Application Default Credentials. מידע נוסף זמין במאמר הגדרת אימות לספריות לקוח.

import datetime

from google.cloud.bigquery_datatransfer_v1 import (
    DataTransferServiceClient,
    StartManualTransferRunsRequest,
)

# Create a client object
client = DataTransferServiceClient()

# Replace with your transfer configuration name
transfer_config_name = "projects/1234/locations/us/transferConfigs/abcd"
now = datetime.datetime.now(datetime.timezone.utc)
start_time = now - datetime.timedelta(days=5)
end_time = now - datetime.timedelta(days=2)

# Some data sources, such as scheduled_query only support daily run.
# Truncate start_time and end_time to midnight time (00:00AM UTC).
start_time = datetime.datetime(
    start_time.year, start_time.month, start_time.day, tzinfo=datetime.timezone.utc
)
end_time = datetime.datetime(
    end_time.year, end_time.month, end_time.day, tzinfo=datetime.timezone.utc
)

requested_time_range = StartManualTransferRunsRequest.TimeRange(
    start_time=start_time,
    end_time=end_time,
)

# Initialize request argument(s)
request = StartManualTransferRunsRequest(
    parent=transfer_config_name,
    requested_time_range=requested_time_range,
)

# Make the request
response = client.start_manual_transfer_runs(request=request)

# Handle the response
print("Started manual transfer runs:")
for run in response.runs:
    print(f"backfill: {run.run_time} run: {run.name}")

רישום ביומן ומעקב

שירות העברת הנתונים ל-BigQuery מייצא יומנים ומדדים ל-Cloud Monitoring ול-Cloud Logging, כדי לספק לכם תובנות לגבי ההעברות. אתם יכולים להשתמש בכלי המעקב כדי להגדיר לוחות בקרה למעקב אחרי העברות, להעריך את הביצועים של העברת נתונים ולהציג הודעות שגיאה כדי לפתור בעיות שגורמות לכשלים בהעברה. אתם יכולים להשתמש ביומן כדי לראות יומנים שקשורים להרצת העברה או להגדרת העברה.

אפשר גם לצפות ביומני ביקורת שזמינים בשירות העברת הנתונים ל-BigQuery כדי לראות את פעילות ההעברה ויומני גישה לנתונים.