当前位置: 首页 > 知识库问答 >
问题:

Bigqueryreservation 在创建赋值时出现 400 无效参数错误

宋翔
2023-03-14

当我试图在python中从谷歌云实现BigQuery插槽预留时,我遇到了这个错误,如下所述:https://cloud.google.com/python/docs/reference/bigqueryreservation/latest/google.cloud.bigquery_reservation_v1.services.reservation_service.ReservationServiceClient

我还尝试运行了本博客中描述的代码:https://medium.com/google-cloud/optimize-bigquery-costs-with-flex-slots-e06ec5e4aa90

据我所知,我使用了正确的方法和参数,并且在提出请求时会出现错误。当我跑步时

  assign_config = Assignment(job_type='QUERY',
                         assignee='projects/{}'.format(user_project))
  assign = res_api.create_assignment(parent=reservation_id,
                                 assignment=assign_config)

我得到这个错误

InactiveRpcError Traceback(最近一次调用last)/usr/local/lib/python 3.7/dist-packages/Google/API _ core/grpc _ helpers . py in error _ re mapped _ callable(* args,**kwargs) 66 try: -

6帧 /usr/local/lib/python3.7/dist-packages/grpc/_channel.py(自我、请求、超时、元数据、凭据、wait_for_ready、压缩)945wait_for_ready、压缩)--

/usr/local/lib/python 3.7/dist-packages/grpc/_ channel . py in _ end _ unary _ response _ blocking(state,call,with_call,deadline) 848 else: -

_非活动RpcError:

上述例外是以下例外的直接原因:

()5 ) 6 -中的无效参数回溯(最近一次调用)

/usr/local/lib/python3.7/dist-packages/google/cloud/bigquery_reservation_v1/services/reservation_service/client.py in create_assignment(self, request, parent, assignment, retry, timeout, metadata) 1871 1872 # 发送请求。-

/usr/local/lib/python3.7/dist-packages/google/api_core/gapic_v1/method.py调用(自己,*args,**kwargs)143 kwargs["元数据"]=元数据144--

/usr/local/lib/python3.7/dist-packages/google/api_core/grpc_helpers.pyerror_remapped_callable(*args,**kwargs)67返回callable_(*args,**kwargs)68除了grpc. RpcError作为exc:---

/usr/local/lib/python3.7/dist-packages/six.pyraise_from(价值,from_value)

InvalidArgument: 400请求包含无效参数。

我的完整代码:

!pip install protobuf==3.19.0
!pip install google-api-python-client==2.45.0
!pip install google-cloud-bigquery-reservation
from google.colab import auth
auth.authenticate_user()

project_id = 'my-id'
region = 'EU'
parent_arg = "projects/{}/locations/{}".format(project_id, 
                                               region)

!gcloud config set project {project_id}

from google.cloud import bigquery_reservation_v1
from google.cloud.bigquery_reservation_v1 import *
from google.cloud import bigquery
client = bigquery_reservation_v1.ReservationServiceClient()

def purchase_commitment(slots=500):
  commit_config = CapacityCommitment(plan='FLEX', slot_count=slots)
  commit = client.create_capacity_commitment(parent=parent_arg,
                                              capacity_commitment=commit_config)
  print(commit)
  return commit.name

def create_reservation(reservation_name, slots=500):
  res_config = Reservation(slot_capacity=slots, ignore_idle_slots=False)
  res = client.create_reservation(parent=parent_arg, 
                                   reservation_id=reservation_name,
                                   reservation=res_config)  
  print(res)
  return res.name

def create_assignment(reservation_id, user_project):
  assign_config = bigquery_reservation_v1.Assignment(
    #job_type=bigquery_reservation_v1.types.Assignment.JobType(2), 
    job_type="QUERY", 
    assignee=f"projects/{project_id}"
  )

  assign = client.create_assignment(parent=res_id, assignment=assign_config)
  print(assign)
  return assign.name

reservation_name = 'sample-reservation'

slots = 500
commit_id = purchase_commitment(slots)
res_id = create_reservation(reservation_name, slots)
assign_id = create_assignment(res_id, project_id)

共有1个答案

颛孙俊
2023-03-14

我没有使用上面的代码进行分配,而是使用了下面的代码:

assignment_config = Assignment(job_type='QUERY', assignee='projects/{}'.format(project_id))
  assignment = client.create_assignment(CreateAssignmentRequest(
      parent=res_id,
      assignment=assignment_config,
  ))

此外,我没有使用数字格式的project_id,而是使用了项目的全名。这

 类似资料:
  • 现在尝试解决Firebase实时数据库功能上的问题5个小时,请访问“Firebase部署”: 直到今天才有这个 功能是: 终端显示: 云功能日志显示: {"@type":"type.googleapis.com/google.cloud.audit.AuditLog"、"状态":{"code": 3、"消息":"INVALID_ARGUMENT"}、"验证信息":{"主体电子邮件":"nicoar

  • 我编写了一个函数,它接受四个参数,并使用PDO将它们传递给我的MySQL数据库。 我正在尝试使用bindParam,这样我就可以使用变量来构造查询。我遵循了PHP文档中的示例,但我得到了以下错误: 错误:SQLState[HY093]:参数号无效:未绑定任何参数 我做错了什么?

  • 我正在WordPress中创建一个插件,我试图让谷歌工作表脚本工作,但我找不到方法。 我尝试了这里所有可用的代码和不同的源代码,但我找不到任何可以让它工作的东西。这是我得到的错误: 在浏览器中打开以下链接:https://accounts.google.com/o/oauth2/auth?response_type=code

  • 我正在开发一个ASP.Net MVC 4应用程序,我使用Azure Blob来存储我的用户将要上传的图像。我有以下代码: 一旦执行if语句,我就会收到以下异常: 我以为这是集装箱的名字,但我看不出有什么问题。连接字符串似乎为blob创建了一个包含所有详细信息的良好存储。我不知所措。我研究过网络,每个人都说这是一个命名问题,但我没有发现任何错误。 我使用的测试容器名称:< code > imagea

  • 我有一个gridview和一个放入列表,一个有函数,另一个没有函数,所以只有一个标记。尽管我的标记中有,但似乎无法解决这个问题。 我试过其他人提到的清理和重建,但对我不起作用,错误还在显现。 创建control-asp时出错:dropdownlist ;id=“dropdownlist1” runat=“server”缺少的结束标记。 创建控件时出错-ASP:GridView ;id=“GridV

  • 我正在用MySQL数据库构建一个django应用程序。当我第一次运行“Python Manage.py Migrate”时,一些表创建得很好,然后出现一些错误。引出的错误是: 完整的回溯是: